官方文档尚不清楚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
答案 0 :(得分:2)
您的SharedModule
导入UserModule
,因此导入链(或至少我要在此处遵循的导入链)为AppModule -> UsersModule -> CategoriesModule -> SharedModule -> UsersModule -> CategoriesMOdule -> SharedModule -> ...
。要解决此问题,要么SharedModule
不应导入UsersModule
,要么应该转发来自CategoriesModule
的{{1}},来自{的UserModule
{1}中的{1}}和UserModule
中的SharedModule
。这是我第一次看到深度依赖几个模块的循环依赖项,因此我无法提供有关如何使用SharedModule
方法的确切语法。