Une variable d'environnement fournit des informations sur l'environnement dans lequel un processus s'exécute. Ils configurent les ports du serveur et les connexions à la base de données, masquent les données sensibles telles que les clés API, et bien plus encore.
La façon dont NestJS lit les variables d'environnement diffère du package dotenv standard de NodeJS.
Le module de configuration NestJS vous permet de gérer vos variables d'environnement en quelques étapes seulement.
Étape 1: Installer les dépendances
NestJS fournit un espace dédié @nestjs/config paquet qui utilise le dotenv paquet sous le capot. Ce package sans dépendance charge les variables d'environnement à partir d'un .env déposer dans processus.env. L'objet process.env est une variable globale injectée au moment de l'exécution pour l'utilisation de votre application.
Installez le package de configuration NestJS en exécutant :
installation npm @nestjs/config
Le package de configuration NestJS fonctionne en exposant un module de configuration et un service de configuration à l'application. Le module de configuration spécifie le
.env déposer la demande de lecture. Dans le même temps, le service de configuration expose les informations à l'intérieur du .env fichier au reste de l'application.Étape 2: Création de fichiers ENV
Le stockage des variables d'environnement dans un fichier vous permet accédez-y facilement depuis n'importe quelle langue, sur différents systèmes d'exploitation. Vous pouvez contrôler la version de ces .env fichiers, de sorte qu'ils augmentent la portabilité du projet et peuvent atténuer les problèmes de débogage.
L'approche NestJS pour la création de fichiers .env diffère de la recommandation officielle dotenv. Selon la documentation dotenv, vous ne devez pas créer plus d'un fichier .env dans une application. NestJS vous permet de créer plusieurs fichiers .env avec des noms différents.
Comme bonne pratique, vous devez toujours créer des fichiers .env dans le répertoire racine de votre projet et les inclure dans votre .gitignore dossier.
Il n'y a pas de méthode spéciale pour créer un fichier .env - il suffit de les créer et de les modifier avec votre éditeur de texte normal - mais ils doivent commencer par .env. Par exemple, .env.developpement.
Étape 3: Configuration du module de configuration
Suivez l'étape ci-dessous pour configurer votre module de configuration globalement et spécifiez le .env chemins :
- Dans le module racine de votre projet (app.modue.ts) fichier, importer ConfigModule de @nestjs/config.
- Ajouter ConfigModule à ton importations tableau et appelez le forRoot méthode dessus.
- Passez un objet de configuration au forRoot méthode, avec une estGlobal propriété à vrai. Cette option partage la configuration via les autres modules de votre application, ce qui signifie que vous n'aurez pas à la configurer plus d'une fois.
- Précisez votre envFilePath dans votre objet de configuration. Cette propriété peut être soit une chaîne (si vous en avez une .env fichier) ou un tableau contenant tous vos .env fichiers et indiquera au module de configuration quels fichiers rechercher.
// app.module.ts
@Module({
importations: [
ConfigModule.forRoot({
estGlobal: vrai,
envFilePath: 'Nom(s) de votre (vos) fichier(s) .env',
}),
Étape 4: Utilisation du service de configuration pour lire les variables d'environnement
Pour accéder aux valeurs de configuration commencez par importer ConfigService de @nestjs/config. Injectez-le dans le constructeur de classe en déclarant un privé variable et assignation ConfigService comme son type.
Par exemple:
constructeur(config privée: ConfigService) {}
Pour accéder à une variable, appelez le obtenir méthode sur la ConfigService sur votre privé variable. Transmettez-lui le type de données dont vous avez besoin en tant que générique et le nom de la variable d'environnement à laquelle vous souhaitez accéder.
Par exemple:
const envVar = this.config.get<chaîne de caractères>('ENV_VALUE');
La ConfigService recherche une valeur avec le nom "ENV_VALUE" et renvoie sa valeur.
Notez que si deux .env les fichiers contiennent le même nom de propriété, le premier spécifié dans le envFilePath aura préséance.
L'importance des variables d'environnement
Les variables d'environnement sont une partie essentielle d'un programme, en particulier dans les applications plus complexes. Ils vous permettent de contrôler la configuration de votre programme grâce à un mécanisme commun facile à comprendre.
Vous pouvez utiliser des variables d'environnement pour contrôler tous les aspects de la configuration. Des différents paramètres de base de données aux données sensibles telles que les clés d'API et les informations d'identification, ils vous permettent de modifier la configuration sans toucher au code source sous-jacent.