有一些问题,di/circular-references 我确定我做错了,我只是看不到它。
任何帮助将非常感激
用户模块.ts
@Module({
imports: [
TypeOrmModule.forFeature([User]),
forwardRef(() => AuthModule)
],
providers: [ UserService, TokenService ],
exports: [ UserService ]
})
export class UserModule {}
auth.module.ts
@Module({
imports: [ forwardRef(() => UserModule) ],
controllers: [ AuthController ],
providers: [
AuthService,
UserService,
TokenService
],
exports: [ AuthService, TokenService ]
})
export class AuthModule {}
app.module.ts
@Module({
imports: [
TypeOrmModule.forRoot(),
forwardRef(() => UserModule),
forwardRef(() => AuthModule),
],
})
export class AppModule {}
我得到 [ExceptionHandler] 无法读取未定义的属性“模块”。
最初有“Nest 无法解决 UserService 的依赖项。然后我完全删除了 UserModule,只使用了 AuthModule,一切正常,然后决定今天重新添加 UserModule,并将代码从 AuthModule 移回 UserModule,然后发现了 forwardRef(() => ),现在我得到了无法读取的属性“模型”。
提前致谢
最佳答案
您需要注入(inject) UserService
的(循环)依赖项通过 forwardRef
同样,请参阅 CommonService example :
constructor(@Inject(forwardRef(() => TokenService)) private readonly tokenService: TokenService) {}
此外,提供者只能在一个模块中声明。如果您想在另一个模块中使用它们,请导出这些提供程序,然后只导入模块:
UserModule
进口 AuthModule
做不是 提供AuthService
再次。这样,所有导出的提供程序都可以在 UserModule
中使用。 .因此,删除
UserService
来自 AuthModule
的提供商列表和 TokenService
来自 UserModule
.
关于dependency-injection - Nest 无法解析 UserService (?, +) 的依赖关系。请确保索引 [0] 处的参数在当前上下文中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692886/