Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!