nestjs中模块之间的循环依赖

时间:2020-07-17 17:25:29

标签: node.js nestjs

官方文档尚不清楚nestjs中的模块如何工作,我对循环依赖有疑问。看来我的模块结构搞砸了,我想了解它的问题所在。我收到的错误是:

Nest无法创建模块实例。通常是因为 模块之间的循环依赖。使用forwardRef()避免它。 (了解更多:https://docs.nestjs.com/fundamentals/circular-dependency) 范围[ AppModule -> UsersModule -> CategoriesModule ]

这是错误消息中提到的所有模块的导入部分。

AppModule:

driver_license_number

UsersModule:

UsersModule,
SmsRegistrationModule,
AuthModule,
SubscriptionModule,
EmailModule,
EntriesModule,
CategoriesModule,
AwsModule,
SharedModule

CategoriesModule:

CategoriesModule

我将AwsModule, SharedModule, 添加到SharedModule模块时引发了错误。似乎我缺少有关这些模块如何通信的信息,因此无法解决此错误。

非常感谢您的帮助。

编辑:

SharedModule:

CategoriesModule

1 个答案:

答案 0 :(得分:2)

您的SharedModule导入UserModule,因此导入链(或至少我要在此处遵循的导入链)为AppModule -> UsersModule -> CategoriesModule -> SharedModule -> UsersModule -> CategoriesMOdule -> SharedModule -> ...。要解决此问题,要么SharedModule不应导入UsersModule,要么应该转发来自CategoriesModule的{​​{1}},来自{的UserModule {1}中的{1}}和UserModule中的SharedModule。这是我第一次看到深度依赖几个模块的循环依赖项,因此我无法提供有关如何使用SharedModule方法的确切语法。