Heim >Web-Frontend >js-Tutorial >Umgebungsvariablen: eine sehr kurze Einführung in die JS-Entwicklung

Umgebungsvariablen: eine sehr kurze Einführung in die JS-Entwicklung

WBOY
WBOYOriginal
2024-09-06 11:01:301104Durchsuche

Environment Variables: a very short intro for JS development

Dieser Artikel soll eine kurze Untersuchung von Umgebungsvariablen für mich selbst sein, daher der knappe Stil

Die Grundlagen

  • Das Terminal ist eine App, die eigentlich ein Terminal-Emulator ist
  • Wir verwenden das Terminal, um mit der Shell zu interagieren
  • Die Shell kann Prozesse erzeugen, beispielsweise ein Javascript-Programm mithilfe einer anderen App, z. B. node
    • z.B. Shell -> Knoten -> index.js
  • Wenn wir das Terminal öffnen, wird eine neue Sitzung in der Shell erstellt
  • Diese Sitzung verfügt über Variablen, die ihr zugeordnet werden können (z. B. gibt echo $USER den Namen des aktuellen Benutzers aus)

Knoten

Im Knoten erfolgt der Zugriff auf Umgebungsvariablen über die globale Datei „process.env“

console.log(process.env.USER); // username
  • Anwendungen greifen normalerweise über Umgebungsvariablen auf Geheimnisse oder konfigurationsbezogene Daten zu
    • z.B. process.env.DB_CONNECTION
    • Dies ist hilfreich, da wir Geheimnisse geheim halten wollen und nicht jeder Benutzer die gleichen Konfigurationsanforderungen hat – dies ermöglicht eine bessere Entkopplung von Logik und Konfiguration

Methoden zum Laden von Variablen

Es gibt verschiedene Möglichkeiten, wie wir diese Variablen unseren Programmen zur Verfügung stellen können.

(1) Bereitstellung über die Befehlszeile:

Ganz einfach – rufen Sie einfach den Befehl mit der Variablen in der Befehlszeile auf.

DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js

(2) Speichern in einer .env-Datei

.env-Dateien bestehen aus SCHLÜSSEL und WERTEN, die durch ein Gleichheitszeichen getrennt sind.

DB_CONNECTION="postgresql://username:password@host:port/database_name"

Diese Dateien sind allgemein verbreitet und es gibt verschiedene Möglichkeiten, sie Ihrer Anwendung zur Verfügung zu stellen.

direnv

Verwenden Sie ein Tool wie direnv, das Variablen aus einer Datei lädt und sie in der Shell verfügbar macht; Dies wird normalerweise global installiert.

Standardmäßig sucht direnv nach einer .envrc-Datei, kann aber auch .env verwenden. Informationen zur entsprechenden Konfiguration finden Sie hier.

dotenv

Verwenden Sie ein Tool wie dotenv, das Variablen aus einer Datei lädt und sie in process.env verfügbar macht.

direnv vs dotenv

Für jede Methode gibt es Vor- und Nachteile.

Die Verwendung von direnv ist sprachunabhängig und bedeutet eine Abhängigkeit weniger, aber es bedeutet auch, dass Verbraucher Ihrer Anwendung ihre eigene Möglichkeit zum Laden von Umgebungsvariablen benötigen, wenn sie direnv nicht verwenden;

Durch die Verwendung von dotenv wird sichergestellt, dass Verbraucher der Anwendung problemlos eine .env-Datei verwenden können, es wird jedoch ein Paket hinzugefügt, nur um etwas zu tun, was die Shell nativ tun kann.

Knotenflagge

Node bietet seit kurzem Unterstützung (v20.6.0) für die direkte Verwendung von .env-Dateien.

Eine Flagge muss verwendet werden

node --env-file=.env index.js

Wie bei dotenv wird dadurch der Inhalt von .env in process.env verfügbar gemacht.

Zusammenfassung

  • Umgebungsvariablen sind native Technologien der Shell
  • Es gibt verschiedene Möglichkeiten, sie zu laden – direkt, direnv, dotenv, node
  • direnv lädt Variablen in Ihre Shell, aber dotenv und node stellen sie Ihrer Anwendung nur über process.env zur Verfügung
  • Wenn Sie Node verwenden, sollten Sie sich wahrscheinlich für die Verwendung des neuen Flags --env-file entscheiden

Das obige ist der detaillierte Inhalt vonUmgebungsvariablen: eine sehr kurze Einführung in die JS-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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