不使用构造函数进行初始化

问题描述 投票:0回答:1

我的nestjs代码是这样的:

constructor(resource,action, @InjectModel(Role.name) public roleModel?: Model<Role>) {
    this.resource = resource;
    this.action = action;
}

如果使用模型,我会收到错误

错误:

角色模型尚未注入
在 RolesGuard.canActivate (/home/siva/projects/prac360/appointment-api/src/role/role.guard.ts:28:13)
在 GuardsConsumer.tryActivate (/home/siva/projects/prac360/appointment-api/node_modules/@nestjs/core/guards/guards-consumer.js:15:34)

如何访问模型?

typescript nestjs
1个回答
0
投票
  1. 什么是
    resource
    action
    ?为什么它们没有被输入?那些是注射剂吗?首先,做一点清洁:)
constructor(private resource: TYPE, private action: TYPE, @InjectModel(Role.name) public roleModel?: Model<Role>) {
}
  1. 为什么
    roleModel
    是不可定义的?这是猫鼬模型吗(我猜)?所以这必须改为
    @InjectModel(Role.name) public roleModel: Model<Role>
    。它不是可选的提供商。如果没有注入角色模型,该服务(守卫?)就无法启动。另外 - 确保该模型可用于该模块。什么对这里真正有帮助?你声明这个服务的模块,声明角色模型的模块,根据这四行代码真的很难说出任何东西......
© www.soinside.com 2019 - 2024. All rights reserved.