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