在Nestjs中,如果我有一个动态模块A根据 forRootAsync 逻辑接受options
对象,如何将该options
注入其导入的模块?(以免说模块 A导入模块 B,这取决于模块A 的某些选项(
我知道如何将选项对象注入模块 Aproviders
但是您如何将其注入模块 A 导入的模块?
注意:要将选项注入模块 A 导入的提供程序,我可以使用值提供程序包装选项对象,并使用工厂提供程序的注入功能,使其可供提供程序使用
如果ModuleB
被导入到ModuleA
中,并且取决于ModuleA
的选项,那么你将在ModuleA
和ModuleB
之间有一个循环依赖关系。从技术上讲,这是可行的,您需要将两个模块相互转发引用,从ModuleA
导出选项提供程序并在ModuleB
中导入ModuleA
,以便选项提供程序可用。它肯定会变得混乱,因为动态模块本身不是在公园里散步。你可能想看看你是否可以制定一个不同的架构,看看你是否可以避免循环依赖。