Maison > interface Web > js tutoriel > Gestion des variables d'environnement dans Node.js avec Dotenv

Gestion des variables d'environnement dans Node.js avec Dotenv

DDD
Libérer: 2025-01-30 12:30:10
original
615 Les gens l'ont consulté

Managing Environment Variables in Node.js with dotenv

Lors du développement d'applications dans Node.js, la gestion des valeurs de configuration sensibles est-elle cruciale. Ces valeurs, telles que les clés API, les informations d'identification de la base de données et les ports du serveur - sont souvent stockées dans les variables d'environnement. Le package Dotenv nous permet de charger ces variables à partir d'un fichier .env, en les gardant hors de notre code source tout en étant accessible dans notre application.

Dans cet article, nous explorerons comment gérer efficacement les variables d'environnement à l'aide de DOTENV et créer une fonction d'utilité pour garantir que les variables requises sont toujours disponibles.


Pourquoi utiliser des variables d'environnement?

L'utilisation de variables d'environnement offre plusieurs avantages:

  • Sécurité: maintient les informations sensibles hors de la base de code.
  • Configurabilité: Modifier facilement les paramètres sans modifier le code.
  • Paramètres spécifiques à l'environnement: Utilisez différentes valeurs pour les environnements de développement et de production.

Configuration de Dotenv dans un projet Node.js

Étape 1: Installer Dotenv

Avant que nous puissions utiliser DOTENV, nous devons l'installer dans notre projet:

npm install dotenv
Copier après la connexion
Copier après la connexion

Étape 2: Créez un fichier .env

Dans la racine de votre projet, créez un fichier .env et définissez vos variables d'environnement:

PORT=5000
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
DB_CONNECT=mongodb://localhost:27017/mydatabase
ACCESS_TOKEN=your-secret-access-token
Copier après la connexion

Remarque: Ne communiquez jamais votre fichier .env dans un référentiel! Ajoutez toujours .env à votre fichier .gitignore.


Variables d'environnement de chargement dans Node.js

Nous pouvons utiliser DOTENV pour charger des variables d'environnement dans notre application Node.js. Le code suivant montre comment procéder:

Étape 3: Créez un fichier de configuration

import { config } from "dotenv";

config({ path: "../../.env" });

// Define all required environment variables
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};

/**
 * This function returns an environment variable and throws an error if unavailable.
 * @param varName - The key of the environment variable.
 * @returns The value of the specified environment variable.
 */
export default function getEnv(varName: keyof typeof envVars): string {
  if (typeof envVars[varName] === "undefined") {
    console.error(`'${varName}' is not available`);
    process.exit(1);
  } else {
    return envVars[varName] as string;
  }
}
Copier après la connexion

Comprendre le code

  1. Variables de l'environnement de chargement:
import { config } from "dotenv";
config({ path: "../../.env" });
Copier après la connexion

Cela importe Dotenv et charge le fichier .env dans process.env.

  1. Définir les variables d'environnement attendues:
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};
Copier après la connexion

Nous définissons un ensemble de variables d'environnement attendues et fournissons une valeur par défaut pour le port en cas de manque.

  1. Créez une fonction pour récupérer les variables d'environnement en toute sécurité:
export default function getEnv(varName: keyof typeof envVars): string {
  if (typeof envVars[varName] === "undefined") {
    console.error(`'${varName}' is not available`);
    process.exit(1);
  } else {
    return envVars[varName] as string;
  }
}
Copier après la connexion

Cette fonction garantit que si une variable d'environnement est manquante, l'application lancera une erreur et se terminera au lieu d'échouer silencieusement.


Utilisation de la fonction GETENV

Maintenant, chaque fois que nous avons besoin d'une variable d'environnement dans notre projet, nous pouvons le récupérer en toute sécurité comme ceci:

import getEnv from "./getEnv";

const databaseURL = getEnv("dbConnect");
console.log("Database URL:", databaseURL);
Copier après la connexion

Si la variable est manquante, l'application quittera et enregistrera une erreur, garantissant que nous n'en exécutons jamais l'application avec des configurations manquantes.


Meilleures pratiques pour gérer les variables environnementales

  1. Never Hardcode Secrets dans votre application. Utilisez toujours des variables d'environnement.
  2. Utilisez un fichier .env.example pour fournir un modèle pour les variables requises.
  3. Utiliser des fichiers .env spécifiques à l'environnement, tels que .env.development et .env.production.
  4. Utilisez une bibliothèque comme Cross-INV pour définir des variables d'environnement dans les scripts sur différents systèmes d'exploitation.

Conclusion

La gestion des variables d'environnement est une partie essentielle du développement des applications, et le package Dotenv facilite les charges en toute sécurité. En créant une approche structurée à l'aide d'une fonction GETENV, nous pouvons nous assurer que toutes les variables requises sont correctement chargées, empêchant les erreurs d'exécution causées par des configurations manquantes.

En suivant les meilleures pratiques, nous pouvons améliorer la sécurité, la maintenabilité et la flexibilité de nos applications Node.js.


Exemple de code complet

npm install dotenv
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal