无法在 NestJs 中捕获事件
Unable to catch event in NestJs
我正在对 NestJs 事件进行一些测试。
这是代码(非常基本)
import { Body, Controller, Post } from '@nestjs/common';
import { OnEvent, EventEmitter2 } from '@nestjs/event-emitter';
@Controller('messages')
export class MessagesController {
constructor(private eventEmitter: EventEmitter2) {}
@Post()
async postMessage(@Body() message: any) {
this.eventEmitter.emit('custom.event', { data: message });
}
@OnEvent('custom.event', { async: true })
handleEvent(payload: any) {
console.log(payload);
}
}
我像那样在 AppModule 中导入了模块
EventEmitterModule.forRoot({
wildcard: true,
delimiter: '.',
}),
当我执行 POST 请求时,侦听器未捕获事件。我错过了什么?
查看 source code 似乎 Controllers
在连接订阅者时未被扫描。
仅 Providers
被扫描,这意味着您将需要创建一个专用的可注入服务来装饰您的 @OnEvent
方法
我正在对 NestJs 事件进行一些测试。 这是代码(非常基本)
import { Body, Controller, Post } from '@nestjs/common';
import { OnEvent, EventEmitter2 } from '@nestjs/event-emitter';
@Controller('messages')
export class MessagesController {
constructor(private eventEmitter: EventEmitter2) {}
@Post()
async postMessage(@Body() message: any) {
this.eventEmitter.emit('custom.event', { data: message });
}
@OnEvent('custom.event', { async: true })
handleEvent(payload: any) {
console.log(payload);
}
}
我像那样在 AppModule 中导入了模块
EventEmitterModule.forRoot({
wildcard: true,
delimiter: '.',
}),
当我执行 POST 请求时,侦听器未捕获事件。我错过了什么?
查看 source code 似乎 Controllers
在连接订阅者时未被扫描。
仅 Providers
被扫描,这意味着您将需要创建一个专用的可注入服务来装饰您的 @OnEvent
方法