import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { Commande, CommandeSchema } from 'src/commande/commande.model';
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: 'Commande',
imports: [SharedModule],
inject: [MyService],
useFactory: async (myService: MyService) => {
const schema = CommandeSchema;
schema.post('save', async function (doc) {
const commande = doc as unknown as Commande;
await myService.savingLivraison(commande);
});
return schema;
},
},
]),],
providers: [MyService],
exports: [MyService]
})
export class SharedModule { }
当我这样做时,SharedModule模块没有加载,而我在AppModule中加载得很好,当我删除共享模块中的exports行时,我会出现错误:`[Nest] 25850 - 08/06/2023 17:02:52 ERROR [ExceptionHandler] Nest无法解析CommandeModel(DatabaseConnection,?、MyService)。
我想要的是能够在MongooseModule的上下文中使用myService
1条答案
按热度按时间gev0vcfq1#
您已经创建了
SharedModule
对自身的循环依赖。SharedModule
需要导入MongooseModule
,但MongooseModule
需要导入SharedModule
。您需要做的是将MyService
移动到SharedModule
外部的模块中,然后SharedModule
和MongooseModule
可以导入该模块,然后SharedModule
可以重新导出此新模块,以使MyService
在导入SharedModule
的任何地方都可用