Я создал следующий контроллер класса.
class ProjectsController {
queryBus: QueryBus;
commandBus: CommandBus;
constructor(queryBus, commandBus) {
this.queryBus = queryBus;
this.commandBus = commandBus;
}
async get(req, reply) {
reply.code(200).send(await this.queryBus.execute<GetOneProjectQuery, String>(GetOneProjectQuery));
}
И это мой зарегистрированный маршрут.
export default async (fastify, opts, done) => {
const { commandBus, queryBus } = fastify.di;
const projectsController = new ProjectsController(queryBus, commandBus);
await fastify.get("/", await projectsController.get);
done();
};
Когда я делаю запрос, мой this.queryBus
всегда не определен. Я не знаю, как внедрить два объекта в класс, чтобы затем использовать их в методе get
. Конечно, когда я создаю
await fastify.get("/", async(req, reply)=>{this.queryBus...});
он работает правильно.
Подскажите, пожалуйста, возможно ли это сделать объектно-ориентированным способом?