【问题标题】:NestJS EventEmitterNestJS 事件发射器
【发布时间】: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 类。

标签: javascript nestjs nestjs-config


【解决方案1】:

Nest 不会对 TypeORM Repository 类执行任何 DI。这是因为这些类具有 TypeORM 所需的其他依赖项,例如实体管理器和连接。注入 EventEmitter 应该在常规 NestJS Provider 中完成,而不是 TypeO Repo 类

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多