【发布时间】:2019-06-25 20:52:18
【问题描述】:
我正在开发后端并尝试实现 CQRS 模式。 我对事件很清楚,但有时会遇到命令。
我看到用户请求命令,例如ChangePasswordCommand。然而,在实现级别,用户只是调用一个端点,由某个控制器处理。
我可以将UserService 注入我的控制器,它将处理域逻辑,这就是基本教程的工作方式(我使用 Nest.js)。但是我觉得这也许是我应该使用命令的地方 - 所以我应该在我的控制器中执行命令 ChangePasswordCommand 然后域模块将处理它吗?
重要的是我需要命令的返回值,从实现的角度来看这不是问题,但在 CQRS 方面看起来不太好 - 我应该同时 ADD 和 GET。
或者也许最后一个选项是在控制器中执行命令,然后在命令处理程序中发出事件 (PasswordChangedEvent)。接下来,等待事件返回并返回控制器中的值。
这最后一个选项对我来说似乎相当不错,但我在请求生命周期内的明确实现方面存在问题。
【问题讨论】:
标签: node.js design-patterns crud cqrs nestjs