我想在我的应用程序中使用nestjs-spelunker动态地提供应用程序的模块依赖关系图。
这意味着,能够在对我的控制器的每个请求上调用SpelunkerModule.explore(app)
(其中app
是通过调用NestFactory.create
创建的构建应用程序上下文)。但是在阅读了这个question之后,我明白了注入应用上下文可能是不可能的。
作为替代方案,我考虑在应用程序创建后立即调用main.ts
中的SpelunkerModule.explore(app)
,并以某种方式将结果注入到某个构建的模块中,或者动态创建新模块并将其注入到应用程序中。
这些解法我一个也想不出该怎么做。
我尝试使用forRoot
静态创建函数创建一个动态模块,但我不知道如何将此模块添加到已构建的应用程序中(只有在应用程序创建完成后才能创建此动态模块以完全构建其依赖关系图)。
1条答案
按热度按时间wsewodh21#
我能想到的唯一方法是一个黑客:在调用
SpelunkerModule.explore(app)
之后,在main.ts
上利用app.use(middlewareFn)
来定义一个中间件,该中间件将模块依赖关系图对象附加到请求对象