簡體   English   中英

將Koa.js與ES6一起使用

[英]Use Koa.js with ES6

我現在用Express編寫REST API。 我一直在閱讀Koa.js,這聽起來很有趣,但是我似乎無法弄清楚如何使用Koa.js編寫適當的ES6功能。 我正在嘗試制作結構化的應用程序,這就是我現在擁有的:

注意:我使用的是koa-route軟件包,

let koa = require('koa');
let route = require('koa-route');
let app = koa();


class Routes {
    example() {
        return function* () {
            this.body = 'hello world';
        }
    }
}

class Server {
    constructor(port) {
        this.port = port;
    }

    addGetRequest(url, func) {
        app.use(route.get('/', func());
    }

    listen() {
        app.listen(this.port);
    }
}

const port = 8008;
let routes = new Routes();
let server = new Server(port);

server.addGetRequest('/', routes.example);
server.listen();

它可以工作,但外觀和感覺笨拙。 有一個更好的方法嗎?

僅僅因為ES6具有類,並不意味着您絕對不能在無法使用它們的情況下使用它們 :)

這是我通常如何做的一個例子。 請不要以為這是一種方式,而不是這種方式。

// api/exampleApi.js
const controller = {
  getExample: (ctx) => {
    ctx.body = { message: 'Hello world' };
  }
}

export default function (router) {
  router.get('/example', controller.getExample);
}

// server.js
import Koa from 'koa';
import KoaRouter from 'koa-router';
import exampleApi from 'api/exampleApi';

const app = new Koa();
const router = new KoaRouter();
exampleApi(router);

app.use(router.routes());
app.listen(process.env.PORT || 3000);

請注意:此示例基於Koa 2和Koa Router 7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM