Я пытаюсь использовать события в моем приложении nestjs.
Однако, когда я пытаюсь вызвать команду, я получаю CommandHandlerNotFoundException
.
У меня есть message-bus.module
:
@Module({
imports: [CqrsModule],
providers: [
MessageBusLocalService,
StartWorkflowHandler
],
exports: [MessageBusLocalService]
})
export class MessageBusModule {
}
message-bus-local.service
@Injectable()
export class MessageBusLocalService {
constructor(private readonly commandBus: CommandBus, private eb: EventBus) {
}
startWorkflow(workflowId: string, payload: any) {
return this.commandBus.execute(
new StartWorkflowCommand(workflowId, payload)
);
}
}
и start-workflow.handler
@CommandHandler(StartWorkflowCommand)
export class StartWorkflowHandler implements ICommandHandler<StartWorkflowCommand> {
constructor() {}
async execute(command: StartWorkflowCommand) {
console.log('Workflow started', command.jobId);
return true;
}
}
Я пытаюсь вызвать команду при загрузке приложения:
const app = await NestFactory.create(ApplicationModule);
const service = app.get(MessageBusLocalService);
try {
const c = await service.startWorkflow('abcde', {just: "test"});
console.log('And returned', c);
} catch (e) {
console.error(e)
}
и ... я получаю CommandHandlerNotFoundException
там, хотя я считаю, что оно объявлено ... Что я сделал не так?
Заранее спасибо.