每次尝试运行项目时,都会收到错误消息:
CircularDependencyException [错误]:循环依赖已 在@InjectRepository()内部检测到。请确保每一面 双向关系中的一个用“ forwardRef()”修饰。 另外,请尝试消除桶形文件,因为它们会导致 也是意外行为。
我仅有的线索是我的模块之一:
如果我对此行发表评论:
constructor(
@InjectRepository(Role) private roleRepo: Repository<Role>
){}
项目开始运行,但是我在启动项目时注意到日志,出现错误的模块先于所有内容开始
[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
但是我有app.module.ts
文件,
@Module({
imports: [TypeOrmModule.forRootAsync({
useClass: DatabaseConnectionService
}),
AuthorizationModule,
TypeOrmModule.forFeature([User, Role]),
FirstModule,
SecondModule,
MyErrorModule, //This is the first to be executed
],
有人对如何解决此问题有个想法?
答案 0 :(得分:0)
好吧,我决定不删除此问题,因为它可能对其他人有帮助。
日志的这一部分对于调试我的问题很重要:
[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
我注意到其中一个模块在所有操作之前都已注册, 原因是:我的一项服务中有一个未使用的
import
, 该进口商品包含另一项服务,并且正在产生 循环引用。
这就是为什么在此线程中:https://github.com/nestjs/nest/issues/3555#issuecomment-562468943编写的Kamil Mysliwiec
此错误表示您已将未定义的值传递到 @InjectRepository()装饰器。我们真的无法生产更多东西 描述性:(确保之间没有任何循环依赖 您的实体<->服务。
这是真的,在导入时,我试图注入尚未准备好的未注册模块/服务。 因此,针对此特定情况的解决方案,请清理代码,并删除未使用的导入。