我目前正在建立一个带有传奇的文章发布系统(以CQRS格式剪切),以侦听是否准备发布文章。传奇如下:
@Injectable()
export class ArticleSaga {
@Saga()
articleRegister = (events$: Observable<any>): Observable<ICommand> => {
return events$
.pipe(
ofType(RegisterArticleEvent),
delay(1000),
map((event: {
uuid: string,
statut: string,
createBodyArticleDto: CreateBodyArticleDto,
}) => {
return new PublishArticleCommand(event.uuid, event.statut, event.createBodyArticleDto);
}),
);
}
}
但是当我创建文章时,执行此操作的命令效果很好,但是侦听此命令以启动发布命令的传奇抛出了一个我不理解并且不知道如何解决的错误。错误如下:
.../node_modules/rxjs/internal/util/hostReportError.js:4
setTimeout(function () { throw err; }, 0);
CommandHandlerNotFoundException {
message: 'CommandHandler not found exception!'
}
Handler PublishArticleHandler:
@CommandHandler(PublishArticleCommand)
export class PublishArticleHandler implements ICommandHandler<PublishArticleCommand> {
constructor(
private readonly publicRepository: PublicRepository,
) {}
async execute(command: PublishArticleCommand) {...}
和PublishArticleCommand:
export class PublishArticleCommand implements ICommand {
constructor(
public readonly uuid: string,
public readonly statut: string,
public readonly createBodyArticleDto: CreateBodyArticleDto,
) {}
}
[如果有人了解此问题并找到解决方案,我将很高兴阅读它。 ;)
我发现了为什么出现此错误,PublishArticleHandler
处理程序未导入模块。