当涉及来自不同兄弟的不同服务时,Nest 无法解决服务依赖关系
Posted
技术标签:
【中文标题】当涉及来自不同兄弟的不同服务时,Nest 无法解决服务依赖关系【英文标题】:Nest can't resolve service dependencies when it's about a different service from a different brother 【发布时间】:2020-11-16 00:53:14 【问题描述】:我是 NestJS 的新手,当我尝试从 AppModule 中声明的模块注入服务时遇到问题,同时将另一个服务声明到 AppModule 中的另一个模块中。
例如:
**app.module.ts**
imports: [
CoreModule,
ProductsModule,
],
controllers: [
AppController,
],
providers: [
AppService,
],
**core.module.ts**
imports: [
],
controllers: [
BrandsController,
CategoriesController,
ReviewsController,
],
providers: [
BrandsService,
CategoriesService,
ReviewsService,
],
exports: [
ReviewsService,
]
由于我需要 core.module.ts 中的控制器,我不得不将其注入 app.modules.ts。
同时,我需要这个模块中的一些服务和控制器,将它们注入到 products.module.ts 中。
**products.module.ts**
imports: [
...
],
providers: [
ProductsService,
],
controllers: [
ProductsController,
]
现在我的问题是:
Nest 无法解析 ProductsService (?, ReviewsService) 的依赖关系。请确保索引 [0] 处的参数 ProductModel 在 ProductModule 上下文中可用。
【问题讨论】:
你能显示你的ProductService
的构造函数吗?
您提供的答案应该已添加到问题中,而不是作为答案。此外,这与您给出的错误不符。根据您的错误,您的 ProductsService
应该有两个依赖项,但这只有一个。你的ProductsModule
的imports
数组中有MongooseModule.forFeature()
吗?
【参考方案1】:
这里是 products.service.ts 的构造函数:
constructor(
@InjectModel('Product')
private readonly productModel: Model<IProductSchema>,
) ```
I am using MongoDB and mongoose schema for collections.
【讨论】:
以上是关于当涉及来自不同兄弟的不同服务时,Nest 无法解决服务依赖关系的主要内容,如果未能解决你的问题,请参考以下文章
Nest 在测试期间无法解析 UserService 的依赖关系