应用入口
import * as Koa from 'koa';
import * as Router from 'koa-router';
import HomeController from './home-controller'
const app = new Koa();
const router = new Router();
router.get('/', HomeController.hello )
controller
export default class HomeController {
static hello(ctx) {
//这里是通过传参获取到当前上下文实例ctx
return 'hello';
}
}
上面的ctx
是通过传参获取到的
如果我不想通过传参的方式获取ctx
,而是在应用任何地方
都能获取到ctx
,应该如何做呢?
在应用的任何地方都能获取到
ctx
是不现实的,因为ctx
是一个依赖当前请求而创造的上下文变量。-----------更新-----------
根据楼主评论里的需求描述,我这里提供一个思路:
ctx
参数,并令this.ctx = ctx
;ctx
变量注入 path 对应的处理函数中,此处可以进行具体的 controller 子类的实例化,如此 controller 中将能够通过this.ctx
访问ctx
变量。ctx
。