我创建了以下类控制器。
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...});
它工作正常。
你能告诉我,如果有可能以面向对象的方式做到这一点?