在NestJS中,如何将动态模块异步选项注入模块内部导入?

时间:2019-12-27 20:38:54

标签: dependency-injection nestjs

Nestjs 中,如果我有一个动态模块 A ,它按照forRootAsync逻辑接受options对象,我该如何注入options导入模块? (至少可以说模块A 导入模块B 取决于模块A的某些选项)

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

注意:将选项注入模块导入的提供程序中,我可以使用value provider包装options对象,并使用Factory providers的注入功能,以使提供程序可以使用它

1 个答案:

答案 0 :(得分:1)

如果将ModuleB导入到ModuleA中,并且取决于ModuleA的选项,那么您将在ModuleAModuleB。从技术上讲,这是可行的,您需要相互引用两个模块,从ModuleA导出选项提供程序,并在ModuleA中导入ModuleB,以便使用选项提供程序。肯定会变得混乱,因为DynamicModules本身不在公园散步。您可能想看看是否可以设计出一种不同的体系结构,并可以避免循环依赖。