正确的动态模块导出方式

6
我有一个NestJS应用程序,其中包含CoreModule,它将核心服务的集合导出到所有其他模块中。 在核心模块中,我有动态模块注册HttpModule。 我不想为导入和导出分别注册此模块,因此我执行以下操作:
const httpModule = HttpModule.register({
    timeout: Configuration.requestTimeoutMilliseconds
});

@Module({
    imports: [httpModule],
    providers: [
        ...
    ],
    exports: [
        httpModule,
        ...
    ]
})
export class CoreModule { }

当我启动我的应用程序时,我在InstanceLoader日志中看到HttpModule依赖项被注册了两次:

enter image description here

一般情况下,导出动态模块的正确方法是什么?
1个回答

2
你可以这样做。
@Module({
  imports: [
    HttpModule.register({
      timeout: Configuration.requestTimeoutMilliseconds,
    }),
  ],
  providers: [],
  exports: [HttpModule],
})
export class CoreModule {}

当你想要实现一个动态模块时,需要将模块类作为模块标识符在模块字段中返回,这对我来说很有意义。在文档https://docs.nestjs.com/fundamentals/dynamic-modules#module-configuration中有声明动态模块的示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接