正如 stackoverflow Separate router and controller in koa所描述的一样。 如果Controller层,真的要使用class构建实例时,在Router上怎样使用才比较简单、优雅呢?
let app = require('koa')(); let router = require('koa-router')(); class Controller { constructor (context) { this.users = ['ron', 'jack']; } getUsersFromDb() { return this.users; } * getUsers () { let users = this.getUsersFromDb(); return users; } } router.get('/users', * function(){ let controller = new Controller(this); this.body = yield controller.getUsers(); }) app .use(router.routes()) .use(router.allowedMethods()) .listen(3000);