每次我尝试运行我的项目时,都会收到错误:
CircularDependencyException [错误]:在 @InjectRepository() 内部检测到循环依赖项。请确保双向关系的每一方都用“forwardRef()”修饰。另外,请尝试消除桶文件,因为它们也可能导致意外行为。
我唯一的线索是我的模块之一:
如果我评论这一行:
constructor(
@InjectRepository(Role) private roleRepo: Repository<Role>
){}
Run Code Online (Sandbox Code Playgroud)
并且项目运行,但我在启动项目时注意到日志,出现错误的模块在所有内容之前启动
[Nest] 16872 - 08/04/2020, 7:56:24 PM [NestFactory] Starting Nest application...
[Nest] 16872 - 08/04/2020, 7:56:24 PM [InstanceLoader] TypeOrmModule dependencies initialized +91ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] MyErrorModule dependencies initialized +500ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmCoreModule dependencies initialized +630ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +2ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +1ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +1ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +1ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +4ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] AuthorizationModule dependencies initialized +3ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] AppModule dependencies initialized +3ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] FirstModule dependencies initialized +2ms
Run Code Online (Sandbox Code Playgroud)
但我有我的app.module.ts
文件
@Module({
imports: [TypeOrmModule.forRootAsync({
useClass: DatabaseConnectionService
}),
AuthorizationModule,
TypeOrmModule.forFeature([User, Role]),
FirstModule,
SecondModule,
MyErrorModule, //This is the first to be executed
],
Run Code Online (Sandbox Code Playgroud)
有人知道如何解决这个问题吗?
MrM*_*ins 11
好吧,我决定不删除这个问题,因为它可能对其他人有帮助。
日志的这一部分对于调试我的问题很重要:
[Nest] 16872 - 08/04/2020, 7:56:24 PM [NestFactory] Starting Nest application...
[Nest] 16872 - 08/04/2020, 7:56:24 PM [InstanceLoader] TypeOrmModule dependencies initialized +91ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] MyErrorModule dependencies initialized +500ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmCoreModule dependencies initialized +630ms
[Nest] 16872 - 08/04/2020, 7:56:25 PM [InstanceLoader] TypeOrmModule dependencies initialized +2ms
Run Code Online (Sandbox Code Playgroud)
我注意到其中一个模块在所有内容之前都已注册,原因是:我
import
的一项服务中有一个未使用的模块,并且该导入包含另一项服务,并且正在生成循环引用。
这就是为什么在这个线程中:https://github.com/nestjs/nest/issues/3555#issuecomment-562468943由Kamil Mysliwiec编写
此错误意味着您已将未定义的值传递给 @InjectRepository() 装饰器。我们无法真正生成任何更具描述性的内容:(确保您的实体<->服务之间没有任何循环依赖关系。
确实如此,通过导入,我尝试注入尚未准备就绪的未注册模块/服务。因此,针对这种特定情况的解决方案是清理代码并删除未使用的导入。
归档时间: |
|
查看次数: |
16858 次 |
最近记录: |