用户登录

在应用里发布事件可以使用 EventBus 里提供的 publish 方法。要使用 EventBus 需要先在模块里导入 CqrsModule 模块,下面我要在 UserModule 模块里的一个命令处理器里面用一下这个 EventBus,所以就需要先在 UserModule 模块里面,导入这个 CqrsModule。

然后打开 CreateUserCommandHandler,先在类里面注入 EventBus,在类里面,添加一个构造方法。然后定义一个参数属性,private readonly eventBus,类型是 EventBus,这个 EventBus 来自 @nestjs/cqrs。

执行了这个 CreateUserCommand 命令,可以再发布一个事件,在 execute 方法里面,用一下 this.eventBus 上的 publish 方法,新建一个 UserCreatedEvent ,给它提供一个 user,可以直接把 command 里的 user 交给它。

打开一个 Http 客户端,用 POST 方法请求一下 localhost:3000/users,请求里要带着一个 JSON 数据,数据里有个 name 属性。 发送一下这个请求。

然后回到运行项目开发服务的终端观察一下,这里输出了一个 UserCreatedEvent 。 它里面有个 user 属性。属性的值是一个用户数据。

打开 UserController,在客户端,用 HTTP 的 POST 方法请求 users 地址的时候,会执行 createUser 方法,这个方法里面会执行一个 CreateUserCommand 命令,在这个命令的处理器里面,又会发布一个 UserCreatedEvent 事件。这个事件处理器要做的事情就是在控制台上输出这个 event。

Events:发布事件(EventBus)《 企业应用架构:事件驱动 》

统计

11686
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点