我有两个Netsjs模块
1名用户
2-管理员
这两个模块的模式是相同的。但是有一点不同,user的默认角色是0,admin的默认角色是1。因为Admin也被称为user,所以我想为他们使用一个mongodb集合(users集合)。或者我想在注册后将他们放在同一个集合中发送。
但是在这个过程中我得到了以下错误
[嵌套] 756 - 2022年12月15日下午3:54:34错误[异常处理程序]类型错误:在Reflect.getMetadata(D:\Noum\Data\CYBRNODE\MAN堆栈\网络节点博客后端\网络博客嵌套后端\节点模块\反射元数据\Reflect.js:354:23)在DependenciesScanner.是可注入的(D:\Noum\Data\CYBRNODE\MAN堆栈\网络节点博客后端\网络博客嵌套后端\节点模块@nestjs\核心\scanner.js:302:26)
我为达成目标所做的事情
用户模块ts
@Module({
imports: [
forwardRef(() => {
AdminModule;
}),
MongooseModule.forFeature([
{
name: User.name,
schema: userSchema,
},
]),
],
controllers: [UserController],
providers: [UserService, AdminService],
exports: [UserService],
})
export class UserModule {}
管理模块.ts
@Module({
imports: [
forwardRef(() => {
UserModule;
}),
],
controllers: [AdminController],
providers: [AdminService, UserService],
exports: [AdminService],
})
export class AdminModule {}
admin.service.ts由于我想在mongodb中使用User集合,所以在这里我将UserModel注入AdminServcie
@Injectable()
export class AdminService {
constructor(
@InjectModel(User.name) private readonly adminModel: Model<userDocument>,
) {}
}
我知道该逻辑可能有很多反问题,我将接受所有问题并考虑它们。但首先我要解决此Reflect.getMetadata问题...
1条答案
按热度按时间jdgnovmf1#
您在以下方面有缺陷:
只需替换为:
更新的用户模块:
嵌套MongoDB
如果您还想在另一个模块中使用这些模型,请将MongooseModule添加到CatsModule的exports部分,并在另一个模块中导入CatsModule。