NestJS 事件发射器
Posted
技术标签:
【中文标题】NestJS 事件发射器【英文标题】:NestJS EventEmitter 【发布时间】:2021-09-01 10:38:43 【问题描述】:我正在关注 NestJS 文档以创建 EventEmitter (Doc Link. 当我运行我的代码时出现错误:
“[Nest] 129586 - 16/06/2021, 20:43:31 [ExceptionsHandler] this.eventEmitter.emit 不是函数”
这是我的代码的样子:
从 "@nestjs/event-emitter" 导入 EventEmitter2 ; @EntityRepository(Auth) 导出类 AuthRepository 扩展存储库 构造函数(私人事件发射器:EventEmitter2) 极好的(); 私人记录器=新记录器(AuthRepository.name); 异步创建用户(authDao:SignUpDto):承诺 const 密码、用户名、角色、电子邮件、dateOfBirth、fname、lname = authDao; let user = await this.findOne( username ); 如果(用户) throw new ForbiddenException("用户名已被占用"); user = this.create( 密码,用户名,角色 ); 等待 this.save(user).catch(e => this.logger.error(e)); this.eventEmitter.emit("user.created", fname、lname、dateOfBirth、电子邮件 ); ;
我不确定我在这里缺少什么。
【问题讨论】:
这是一个 TypeORM 存储库类吗? 是的,这是一个 TypeORm Repository 类。 【参考方案1】:Nest 不会对 TypeORM Repository 类执行任何 DI。这是因为这些类具有 TypeORM 所需的其他依赖项,例如实体管理器和连接。注入 EventEmitter 应该在常规 NestJS Provider 中完成,而不是 TypeO Repo 类
【讨论】:
以上是关于NestJS 事件发射器的主要内容,如果未能解决你的问题,请参考以下文章