Heim > Web-Frontend > js-Tutorial > Verwaltung von Umgebungsvariablen in node.js mit dotenv

Verwaltung von Umgebungsvariablen in node.js mit dotenv

DDD
Freigeben: 2025-01-30 12:30:10
Original
684 Leute haben es durchsucht

Managing Environment Variables in Node.js with dotenv

Bei der Entwicklung von Anwendungen in node.js ist die sichere Verwaltung sensibler Konfigurationswerte von entscheidender Bedeutung. Diese Werte - wie API -Schlüssel, Datenbankanmeldeinformationen und Serverports - werden häufig in Umgebungsvariablen gespeichert. Mit dem DOTenV -Paket können wir diese Variablen aus einer .Env -Datei laden, um sie aus unserem Quellcode herauszuhalten, während sie in unserer Anwendung dennoch zugänglich sind.

In diesem Artikel werden wir untersuchen, wie Umgebungsvariablen mithilfe von DOTenV effizient verwaltet werden und eine Versorgungsfunktion erstellen, um sicherzustellen, dass erforderliche Variablen immer verfügbar sind.


Warum Umgebungsvariablen verwenden?

Verwenden von Umgebungsvariablen bietet mehrere Vorteile:

  • Sicherheit: hält vertrauliche Informationen von der Codebasis heraus.
  • Konfigurierbarkeit: Einfach Einstellungen ändern, ohne den Code zu ändern.
  • umweltspezifische Einstellungen: Verwenden Sie verschiedene Werte für Entwicklungs- und Produktionsumgebungen.

Einrichten von Dotenv in einem Node.js -Projekt einrichten

Schritt 1: Installieren Sie DOTENV

Bevor wir dotenv verwenden können, müssen wir es in unserem Projekt installieren:

1

npm install dotenv

Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Erstellen Sie eine .env -Datei

Erstellen Sie im Root Ihres Projekts eine .env -Datei und definieren Sie Ihre Umgebungsvariablen:

1

2

3

4

5

PORT=5000

FRONTEND_URL=http://localhost:3000

NODE_ENV=development

DB_CONNECT=mongodb://localhost:27017/mydatabase

ACCESS_TOKEN=your-secret-access-token

Nach dem Login kopieren

Hinweis: Verpflichten Sie Ihre .EnV -Datei niemals in einem Repository! Fügen Sie immer .Env zu Ihrer .gitignore -Datei hinzu.


Ladeumgebungsvariablen in node.js

Wir können dotenv verwenden, um Umgebungsvariablen in unsere Node.js -Anwendung zu laden. Der folgende Code zeigt, wie das geht:

Schritt 3: Erstellen einer Konfigurationsdatei

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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;

  }

}

Nach dem Login kopieren

Den Code verstehen

  1. Lastumgebung Variablen:

1

2

import { config } from "dotenv";

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

Nach dem Login kopieren

Dies importiert dotenv und lädt die .Env -Datei in process.env.

  1. Erwartete Umgebungsvariablen definieren:

1

2

3

4

5

6

7

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,

};

Nach dem Login kopieren

Wir definieren eine Reihe von erwarteten Umgebungsvariablen und geben einen Standardwert für Port an, falls er fehlt.

  1. Erstellen Sie eine Funktion, um Umgebungsvariablen sicher abzurufen:

1

2

3

4

5

6

7

8

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;

  }

}

Nach dem Login kopieren

Diese Funktion stellt sicher, dass, wenn eine Umgebungsvariable fehlt


Verwenden der Getenv -Funktion

Wenn wir jetzt eine Umgebungsvariable in unserem Projekt benötigen, können wir sie sicher so abrufen:


1

2

3

4

import getEnv from "./getEnv";

 

const databaseURL = getEnv("dbConnect");

console.log("Database URL:", databaseURL);

Nach dem Login kopieren
Wenn die Variable fehlt, wird die Anwendung einen Fehler beendet und protokolliert, sodass wir die App niemals mit fehlenden Konfigurationen ausführen.


Best Practices für die Verwaltung von Umgebungsvariablen

  1. Nie Hardcode -Geheimnisse in Ihrer Anwendung. Verwenden Sie immer Umgebungsvariablen.
  2. Verwenden Sie eine .Env.example -Datei, um eine Vorlage für die erforderlichen Variablen bereitzustellen.
  3. Umgebungsspezifische .Env-Dateien wie .Env.Development und .Env.Production.
  4. Verwenden Sie eine Bibliothek wie Cross-Env, um Umgebungsvariablen in Skripten über verschiedene Betriebssysteme hinweg festzulegen.

Abschluss

Umgebungsvariablen verwalten ist ein wesentlicher Bestandteil der Anwendungsentwicklung, und das DOTENV -Paket erleichtert es einfach, sie sicher zu laden. Durch Erstellen eines strukturierten Ansatzes unter Verwendung einer Getenv -Funktion können wir sicherstellen, dass alle erforderlichen Variablen ordnungsgemäß geladen sind, wodurch Laufzeitfehler durch fehlende Konfigurationen verhindern.

Wenn wir Best Practices folgen, können wir die Sicherheit, Wartbarkeit und Flexibilität unserer Node.js -Anwendungen verbessern.


Beispiel für volles Code

1

npm install dotenv

Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwaltung von Umgebungsvariablen in node.js mit dotenv. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage