ConfigModule

NestJS 🟡 Mid

Définition

Module officiel @nestjs/config pour gérer les variables d'environnement. Charge les fichiers .env et fournit ConfigService pour l'injection.

Analogie

Comme un coffre-fort d'entreprise : centralise tous les secrets et paramètrès, accessible uniquement aux autorises.

Exemple de code

@Module({
  imports: [ConfigModule.forRoot({
    isGlobal: true,
    validationSchema: Joi.object({
      DB_HOST: Joi.string().required(),
      DB_PORT: Joi.number().default(5432),
    }),
  })],
})
export class AppModule {}

Cas d'usage

Centraliser et valider toutes les variables d'environnement au démarrage de l'application.

Anti-pattern

Accéder directement a process.env partout au lieu d'utiliser ConfigService.
#core#interview

En entretien

  1. À quoi sert ConfigModule et pourquoi ne pas juste utiliser process.env partout ?

    ConfigModule (@nestjs/config) centralise le chargement des .env et fournit un ConfigService injectable pour accéder aux variables, comme un coffre-fort d'entreprise qui centralise les secrets et les rend accessibles seulement aux autorisés. Accéder directement à process.env partout dans le code est justement l'anti-pattern classique à éviter.

  2. Comment tu ferais pour être sûr que toutes les variables d'environnement nécessaires sont présentes au démarrage ?

    Je passe un validationSchema, par exemple avec Joi, dans ConfigModule.forRoot, ce qui valide toutes les variables d'environnement dès le démarrage de l'application. Ça permet de centraliser et valider la config en un seul endroit plutôt que de le découvrir en prod.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre