为什么我会得到“嵌套无法解决依赖关系”

问题描述 投票:0回答:1

我试图弄清楚为什么会出现以下错误:

嵌套无法解析UniqueInteractionsService(?)的依赖项。请确保索引[0]的参数依赖性为在SharedModule上下文中可用。

我的班级:

sharedModule.ts:

import {Module, Global} from '@nestjs/common';
import {InteractionsService} from "./elasticsearch/interactionsService";
import {UniqueInteractionsService} from "./elasticsearch/uniqueInteractionsService";
import {EsProvider} from "./elasticsearch/esProvider";

@Global()
@Module({
    exports: [InteractionsService, UniqueInteractionsService],
    providers: [EsProvider, InteractionsService, UniqueInteractionsService]
})
export class SharedModule {
}

interacionsService.ts:

import {ESService} from "./ESService";
import {Injectable, Inject} from '@nestjs/common';

@Injectable()
export class InteractionsService{

    constructor(@Inject(ESService) private readonly esService: ESService) {}

    // more stuff
}

uniqueInteractionsService.ts:

import {ESService} from "./ESService";
import {Injectable, Inject} from '@nestjs/common';

@Injectable()
export class UniqueInteractionsService{
    constructor(@Inject(ESService) private readonly esService: ESService) {}

    // more stuff
}

esProvider.ts:

import {ESService} from "./esService";

export const EsProvider = {
    provide: ESService,
    useFactory: async () => {
        const esService = new ESService();
        await esService.init();
        return esService;
    }
};
nestjs
1个回答
0
投票

您正在从SharedModule导出UniqueInteractionsService。在目标模块中,您需要导入此SharedModule,然后就可以通过依赖注入在属于TargetModule的targetService中使用UniqueInteractionsService。

示例:

target-module.ts:
@Module({
  imports: [SharedModule]
})
export class TargetModule {}
© www.soinside.com 2019 - 2024. All rights reserved.