在控制器使用class构建实例时,在路由上关于this的迷惑

正如 stackoverflow Separate router and controller in koa所描述的一样。

如果Controller层,真的要使用class构建实例时,在Router上怎样使用才比较简单、优雅呢?

阅读 1.4k
1 个回答
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);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进