Wie man .env Dateien in Node.js liest (Aktualisiert für 2025)
Daniel Hayes
Full-Stack Engineer · Leapcell

Environment-Variablen spielen eine entscheidende Rolle in der Anwendungsentwicklung und ermöglichen eine flexible Konfiguration, ohne sensible oder umgebungsspezifische Details fest zu codieren. Node.js bietet mehrere Möglichkeiten, .env
-Dateien zu laden und zu verwalten, abhängig von der verwendeten Version. Dieser Artikel behandelt Methoden für Node.js-Versionen sowohl über als auch unter 20 sowie die Implementierung einer benutzerdefinierten Lösung, falls erforderlich.
Key Takeaways
- Node.js > 20 unterstützt natives
.env
-Datei-Handling über CLI oderprocess.loadEnvFile()
. - Node.js < 20 kann
dotenv
zur.env
-Verwaltung verwenden. - Benutzerdefinierte
.env
-Datei-Parser bieten Flexibilität ohne Abhängigkeiten.
Wenn Ihre Node.js-Version > 20 ist
Für Node.js-Versionen größer als 20 können Sie die integrierte Unterstützung zum Laden von .env
-Dateien nutzen, wodurch externe Abhängigkeiten entfallen. Hier sind die Optionen:
1. Verwenden Sie den --env-file
CLI-Parameter
Ab Node.js v20.6.0 können Sie eine .env
-Datei direkt mit dem Befehlszeilenargument --env-file
laden. Auf diese Weise können Sie Variablen in das process.env
-Objekt einfügen, ohne Ihren Code zu ändern.
-
Erstellen Sie eine
.env
-Datei:PORT=3000 DB_HOST=localhost DB_USER=admin DB_PASSWORD=secret
-
Führen Sie Ihre Anwendung aus:
node --env-file=.env app.js
Die in
.env
definierten Variablen sind nun inprocess.env
verfügbar.
2. Verwenden Sie die process.loadEnvFile()
-API
Ab Node.js v20.12.0 ermöglicht die experimentelle process.loadEnvFile()
-API das dynamische Laden einer .env
-Datei innerhalb Ihres Anwendungscodes.
-
Beispielhafte Verwendung:
(async () => { await process.loadEnvFile('.env'); console.log(`Server is running on port ${process.env.PORT}`); })();
Diese Methode ist besonders nützlich, wenn Sie die programmatische Kontrolle darüber benötigen, wann die
.env
-Datei geladen wird. Da es sich jedoch um eine experimentelle Funktion handelt, kann sich ihr Verhalten in zukünftigen Node.js-Versionen ändern.
Wenn Ihre Node.js-Version < 20 ist
Für frühere Versionen von Node.js müssen Sie externe Bibliotheken verwenden oder Ihre eigene Logik implementieren, um .env
-Dateien zu verarbeiten.
1. Verwenden Sie die dotenv
-Bibliothek
Die dotenv
-Bibliothek ist eine weit verbreitete Lösung für die Verwaltung von .env
-Dateien. Sie funktioniert nahtlos über alle Node.js-Versionen hinweg und ist einfach einzurichten.
-
Installieren Sie die Bibliothek:
npm install dotenv
-
Verwenden Sie sie in Ihrer Anwendung:
require('dotenv').config(); console.log(`Server is running on port ${process.env.PORT}`);
Die
.env
-Datei wird automatisch geladen und ihre Variablen werden zuprocess.env
hinzugefügt.
2. Implementieren Sie Ihre eigene Logik
Wenn Sie es vorziehen, keine externen Bibliotheken zu verwenden, können Sie eine einfache Funktion schreiben, um .env
-Dateien zu parsen und in process.env
zu laden.
-
Beispielimplementierung:
const fs = require('fs'); const path = require('path'); function loadEnvFile(filePath) { try { const resolvedPath = path.resolve(filePath); const data = fs.readFileSync(resolvedPath, 'utf-8'); data.split(/\r?\n/).forEach((line) => { const trimmedLine = line.trim(); if (!trimmedLine || trimmedLine.startsWith('#')) return; const [key, value] = trimmedLine.split('='); if (key && value !== undefined) { process.env[key.trim()] = value.trim(); } }); console.log('Environment variables loaded successfully.'); } catch (error) { console.error(`Error loading .env file: ${error.message}`); } } // Usage loadEnvFile('.env'); console.log(`Server is running on port ${process.env.PORT}`);
Dieser Ansatz bietet die volle Kontrolle darüber, wie
.env
-Dateien geparst und verarbeitet werden, was für fortgeschrittene Anwendungsfälle oder benutzerdefinierte Formate nützlich sein kann.
FAQs
It eliminates the need for third-party libraries.
No, it’s an experimental feature in Node.js v20.12.0+.
Only a custom parser allows full control over formats.
Fazit
Abhängig von Ihrer Node.js-Version können Sie den am besten geeigneten Ansatz zur Verwaltung von .env
-Dateien wählen:
- Node.js > 20:
- Verwenden Sie den
--env-file
CLI-Parameter für schnelles Laden. - Verwenden Sie die
process.loadEnvFile()
-API für dynamische programmatische Steuerung.
- Verwenden Sie den
- Node.js < 20:
- Verwenden Sie die beliebte
dotenv
-Bibliothek für zuverlässige und einfach zu bedienende Unterstützung. - Implementieren Sie Ihren eigenen
.env
-Loader für benutzerdefinierte Anforderungen.
- Verwenden Sie die beliebte
Jede Methode hat ihre Vorteile, und die Wahl der richtigen hängt von Ihren Projektanforderungen und Ihrer Node.js-Version ab.
Wir sind Leapcell, Ihre erste Wahl für die Bereitstellung von Node.js-Projekten in der Cloud.
Leapcell ist die Next-Gen Serverless Plattform für Webhosting, Async Tasks und Redis:
Multi-Language Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeit-Metriken und -Protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein Betriebsaufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ