Хапи Typescript - контроллер имеет это как неопределенное - PullRequest
0 голосов
/ 01 ноября 2018

Мой маршрут 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 в файле маршрута, который должен был запустить новый экземпляр BaseController для this для вызывать, верно?

Вопрос Как получить доступ к экземпляру MyController из обработчика маршрута Hapi?

1 Ответ

0 голосов
/ 12 ноября 2018

Чтобы исправить, мне просто нужно было привязать контроллер, чтобы сохранить контекст «this»

handler: myController.get.bind(myController)

Предоставлено CRice из комментариев выше: «В этом случае я бы привязал метод к его экземпляру. EG: handler: myController.get.bind (myController)» - CRice 31 октября в 23: 10

...