Sortez la configuration du code avec dotenv, séparez développement et production et gardez vos secrets hors de Git.
Ouvrir cette leçon dans KodokonLe port d'écoute, l'URL de la base, les clés d'API : rien de tout cela n'a sa place dans le code source. Ces valeurs changent entre votre machine et la production, et certaines sont des secrets. La solution standard : les variables d'environnement, chargées depuis un fichier .env en développement. Installez dotenv avec npm install dotenv, puis créez le fichier à la racine du projet.
PORT=3000
DATABASE_URL=postgres://localhost:5432/kodokon
SESSION_SECRET=changez-cette-valeurImportez dotenv/config au tout début de votre point d'entrée : les variables du fichier sont copiées dans process.env. Bonne habitude professionnelle : centralisez la lecture dans un module de configuration unique, validez les variables au démarrage et échouez immédiatement si l'une manque. Un serveur qui refuse de démarrer vaut mieux qu'un serveur qui plante à la première requête.
import "dotenv/config";
const required = ["PORT", "SESSION_SECRET"];
for (const name of required) {
if (!process.env[name]) {
throw new Error("Variable manquante : " + name);
}
}
export const config = {
port: Number(process.env.PORT),
secret: process.env.SESSION_SECRET,
isProd: process.env.NODE_ENV === "production"
};En production, pas de fichier .env : l'hébergeur fournit les vraies valeurs, et NODE_ENV vaut production. Utilisez config.isProd pour adapter le comportement : journaux détaillés en développement, messages d'erreur sobres en production. Committez aussi un fichier .env.example listant les variables attendues avec des valeurs factices : il documente la configuration sans exposer les secrets.
import express from "express";
import { config } from "./config.js";
const app = express();
if (!config.isProd) {
console.log("Mode développement");
}
app.listen(config.port, () => {
console.log("Port : " + config.port);
});.env ignoré par Git.env.example ?.gitignore