首页 > 解决方案 > 在 NestJS 中,如何将动态模块异步选项注入模块内部导入?

问题描述

Nestjs 中,如果我有一个根据 forRootAsync 逻辑接受对象的动态模块Aoptions ,我如何将其注入options到其导入的模块中?(更不用说模块 A导入依赖于模块 A 选项的模块 B

我知道如何将选项对象注入到模块 Aproviders但如何将其注入到模块 A 导入的模块中?

注意:要将选项注入到模块 A 导入的提供者中,我可以使用值提供者包装选项对象并使用工厂提供者的注入功能,以使其对提供者可用

标签: dependency-injectionnestjs

解决方案


如果ModuleB被导入ModuleA, 并且依赖于ModuleA的选项,那么你将在和之间有一个循环依赖。从技术上讲这是可行的,您需要将两个模块相互转发引用,从中导出选项提供程序并导入,以便选项提供程序可用。它肯定会变得一团糟,因为 DynamicModules 本身并不是在公园里散步。您可能想看看您是否可以制定不同的架构,看看您是否可以避免循环依赖。ModuleAModuleBModuleAModuleAModuleB


推荐阅读