Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
¿NestJS ConfigService necesita DI?

Así que tengo un proyecto NestJS con CustomConfigService que extiende @nestjs/config y anula algunos de sus métodos para tratar con variables de entorno y tengo myApp.config.ts que contiene una docena de constantes exportadas que devuelven bloques de configuración , como esto:

 export const deviConfig = () => { return { secret: config.get('SECRET_KEY'), auth: config.get('AUTH_OPTION'), steps: config.get('STEPS_OPTIONS'), active: config.get('ENABLE_DEVI'), }; };

Ese config.get proviene de mi clase personalizada con el .get() sobrescrito de ConfigService .

Lo principal aquí es: si voy a usar mi CustomConfigService en mi main , mi app.module y tal vez en algunos otros proveedores, ¿debería usar la inyección de dependencia?

Si estuviera a punto de usar los métodos reales de ConfigService , supongo que debería, ya que así es como nos dicen los documentos de NestJS, pero dado que es una clase personalizada que anula el ConfigService real, ¿debería hacerlo?

La forma en que lo estoy haciendo actualmente es:

main.ts: const configService = app.get(CustomConfigService);

configService.get('VAR') // este es mi método personalizado

app.module.ts: const configService = new(CustomConfigService);

configService.get('VAR') // también mi método personalizado

Además... No estoy realmente seguro de cuándo debo usar DI y cuándo está bien usar simplemente el nuevo (MyService), ¿podría ilustrarme?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que siempre debe usar DI cuando se encuentre dentro del contexto de la aplicación NestJS, es decir, dentro de cualquier módulo/servicio/controlador o resolución.

para .module, normalmente, al importar un módulo, hay una forma de inyectar ConfigService para usar dentro de forRootAsync. Por ejemplo, el siguiente código obtenido de la documentación de nestjs

 MongooseModule.forRootAsync({ imports: [ConfigModule], useFactory: async (configService: ConfigService) => ({ uri: configService.get<string>('MONGODB_URI'), }), inject: [ConfigService], });

el único momento en que no hay forma de hacer DI es cuando está fuera del contexto de NestJS en main.ts, entonces necesita obtener el ConfigService de la aplicación iniciada (como el ejemplo que ha mostrado para main.ts)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda