Я использую inversify в hapijs v20 и машинописном тексте.
Когда я пытаюсь связать зависимость в классе, который будет обрабатывать такие запросы:
import * as Hapi from '@hapi/hapi'
import { injectable, inject } from "inversify";
import { types } from "../types";
@injectable()
export default class SomeController implements SomeInterface {
private dep: any
public constructor(@inject(types.SomeDependecy) dep: SomeDependecy) {
this.dep = dep
}
public validate(request: Hapi.Request, reply: Hapi.ResponseToolkit): Hapi.ResponseObject {
const result = this.dep.validate(request) // The headache line
return reply.response(result)
}
}
а затем введите этот класс, чтобы зарегистрировать такой маршрут:
public constructor(@inject(types.SomeController) controller: SomeController) {
this.controller = controller
}
public async register(server: Server) {
await server.route([
{
method: 'POST',
path: '/validate',
handler: this.controller.validate
}
])
}
Все загружается нормально, и кажется, что экземпляры созданы. Однако, когда я попадаю в конечную точку, я получаю:
TypeError: Cannot read property 'dep' of undefined
Выброшено из строки, закомментированной в контроллере как строка головной боли :C
Ребята, вы знаете, что может быть причиной этого?