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 事件发射器的主要内容,如果未能解决你的问题,请参考以下文章

AWS Lambda 上的 Nestjs(无服务器框架)|如何访问事件参数?

Angular 2事件发射器与主题

node.js 事件发射器模式

Websocket 内存泄漏 node.js。事件发射器?

用玩笑模拟自定义事件发射器

Electron App 中的事件发射器内存泄漏