Hapi Typescript - 控制器有 'this' 未定义

Hapi Typescript - Controller has 'this' as undefined

我的 Hapi 路由调用我的处理程序 handler: myController.get,它被定义为

const myController = new MyController();

MyController 只是扩展了 BaseController,如下所示

export class MyController extends BaseController<MyClass> {

  constructor () {
    super(new MyDataAccess());
  }
}

BaseController 为

export class BaseController<T> {
  constructor(protected dataAccess: BaseDataAccess<T>) { }

  public async getAll(request, reply) {
    console.log('BaseController this', this);

奇怪的是,this 打印为 'undefined',这没有任何意义,因为我已经在路由文件中实例化了 myController,它应该启动了一个新实例this 要调用的 BaseController,对吗?

问题如何从 Hapi 路由处理程序访问 MyController 的实例?

为了修复,我只需要绑定控制器以保留 'this' 上下文

handler: myController.get.bind(myController)

以上评论由 CRice 提供,"In this case, I would bind the method to its instance. EG: handler: myController.get.bind(myController)" – CRice 10 月 31 日 23:10