gpt4 book ai didi

typescript - Nest 无法解决对循环依赖的服务依赖

转载 作者:行者123 更新时间:2023-12-04 17:30:03 30 4
gpt4 key购买 nike

边注

我创建了一个用于复制目的的简约存储库:Link to reproduction repo

我刚刚将我的 Nest 项目更新到了 7.0.0 版。我正在使用 TypeORM,目前我的项目中有 3 个模块。他们都需要从另一个模块访问文件
GraphNodesModule需要访问:

  • GraphsService
  • 模块服务
  • GraphsModule需要访问:
  • GraphNodesService
  • ModulesModule需要访问:
  • GraphNodesRepository

  • 他们三个都导出他们的服务,以便在其他模块中访问它。我的 GraphNodesModule导入其他两个模块以访问它们的服务并处理循环依赖
    @Module({
    imports: [
    TypeOrmModule.forFeature([GraphNodesRepository]),
    forwardRef(() => GraphsModule),
    ModulesModule,
    ],
    providers: [GraphNodesService],
    controllers: [GraphNodesController],
    exports: [GraphNodesService],
    })
    GraphsModule导入 GraphNodesModule 以访问服务并处理循环依赖
    @Module({
    imports: [
    TypeOrmModule.forFeature([GraphsRepository]),
    forwardRef(() => GraphNodesModule),
    ],
    providers: [GraphsService],
    controllers: [GraphsController],
    exports: [GraphsService],
    })
    ModulesModule不需要导入其他模块,只需注册其他存储库
    @Module({
    imports: [
    TypeOrmModule.forFeature([ModulesRepository, GraphNodesRepository]),
    ],
    providers: [ModulesService],
    controllers: [ModulesController],
    exports: [ModulesService],
    })

    运行应用程序时出现以下错误

    [Nest] 3580 - 2020-03-15 11:55:19 [ExceptionHandler] Nest can't resolve dependencies of the GraphNodesService (GraphNodesRepository, ?, ModulesService). Please make sure that the argument dependency at index 1 is available in the GraphNodesModule context.


    GraphNodesService的构造函数是
    constructor(
    @InjectRepository(GraphNodesRepository)
    private readonly graphNodesRepository: GraphNodesRepository,
    private readonly graphsService: GraphsService,
    private readonly modulesService: ModulesService,
    ) {}

    好像是 GraphsService不见了。但是正如您所看到的,我正在导入模块,因此我希望可以访问导出的服务。

    我该如何解决?

    如果您需要更多信息,请告诉我。

    最佳答案

    为了解决这个问题,我必须按照此处描述的两种方式进行

    https://docs.nestjs.com/fundamentals/circular-dependency#forward-reference

    对于服务构造函数和模块

    关于typescript - Nest 无法解决对循环依赖的服务依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60692174/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com