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.
L'utilisation de variables d'environnement offre plusieurs avantages:
Avant que nous puissions utiliser DOTENV, nous devons l'installer dans notre projet:
npm install dotenv
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
Remarque: Ne communiquez jamais votre fichier .env dans un référentiel! Ajoutez toujours .env à votre fichier .gitignore.
Nous pouvons utiliser DOTENV pour charger des variables d'environnement dans notre application Node.js. Le code suivant montre comment procéder:
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; } }
import { config } from "dotenv"; config({ path: "../../.env" });
Cela importe Dotenv et charge le fichier .env dans process.env.
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, };
Nous définissons un ensemble de variables d'environnement attendues et fournissons une valeur par défaut pour le port en cas de manque.
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; } }
Cette fonction garantit que si une variable d'environnement est manquante, l'application lancera une erreur et se terminera au lieu d'échouer silencieusement.
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);
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.
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.
npm install dotenv
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!