Búsqueda de sitios web

node.js - Forma correcta de exportar un módulo dinámico


Tengo una aplicación NestJS con el CoreModule que exporta una colección de los servicios principales a todos los demás módulos. En el módulo core tengo un módulo dinámico que registra el HttpModule. No quiero registrar este módulo dos veces para importación y exportación, así que hago lo siguiente:

const httpModule = HttpModule.register({
    timeout: Configuration.requestTimeoutMilliseconds
});

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

Cuando inicio mi aplicación veo en los registros de InstanceLoader que las dependencias de HttpModule se registran dos veces:

¿Cuál es la manera adecuada de exportar módulos dinámicos en general?

Respuesta #1

Puedes hacerlo así.

@Module({
  imports: [
    HttpModule.register({
      timeout: Configuration.requestTimeoutMilliseconds,
    }),
  ],
  providers: [],
  exports: [HttpModule],
})
export class CoreModule {}

Tiene sentido para mí porque cuando quieres implementar un módulo dinámico, necesitas devolver la clase del módulo como un identificador de módulo en el campo del módulo.

Hay ejemplos de declaración de módulos dinámicos en esta página de la documentación https://docs.nestjs.com/fundamentals/dynamic-modules#module-configuration

Artículos relacionados