„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Umgebungsvariablen: eine sehr kurze Einführung in die JS-Entwicklung

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

Veröffentlicht am 31.10.2024
Durchsuche:957

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. echo $USER gibt 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 möchten 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 KEYS und VALUES, 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

Es gibt Vor- und Nachteile für jede Methode.

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

Die Verwendung von dotenv stellt sicher, dass Verbraucher der Anwendung problemlos eine .env-Datei verwenden können, fügt jedoch ein Paket hinzu, 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.

Es muss ein Flag 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
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/charlesloder/environment-variables-a-very-short-intro-for-js-development-18j3?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3