HOWTO · Node.js
Erstellen und speichern Sie Konfigurationen in Node.js
Dieses Tutorial zeigt, wie Sie Konfigurationen in Node.js erstellen und speichern.
Auf dieser Seite
Eine zentrale Konfiguration hält Einstellungen wie Ports und Datenbank-Hosts aus der Anwendungslogik heraus. Das npm-Paket config lädt Konfigurationen für eine Node.js-Anwendung und bietet dem Code eine zentrale Stelle, an der er diese Einstellungen auslesen kann. Beginnen Sie mit einer Standarddatei und ergänzen Sie umgebungsspezifische Dateien, wenn Entwicklung, Tests, Staging und Produktion unterschiedliche Werte benötigen. Die folgenden Beispiele verwenden JSON und kommen ohne Express aus.
node-config installieren, um Konfigurationen in Node.js zu erstellen und zu speichern
Installieren Sie im Projektverzeichnis das npm-Paket config mit npm install config. npm trägt es in package.json ein. Dadurch ist die Abhängigkeit verfügbar, wenn das Projekt an anderer Stelle installiert wird. Der Paketname lautet config; node-config ist eine gebräuchliche Kurzform, aber nicht der Name, den Sie an npm übergeben.
Erstellen Sie config/default.json für Werte, die in der gesamten Anwendung gelten. JSON verlangt doppelt angeführte Eigenschaftsnamen und Zeichenkettenwerte. Die Datei kann zum Beispiel {"server":{"port":3000},"db":{"host":"localhost","port":27017,"name":"mongodb"}} enthalten. Speichern Sie keine Geheimnisse in Dateien, die in die Versionsverwaltung aufgenommen werden. Übergeben Sie Zugangsdaten stattdessen über die Bereitstellungsumgebung oder einen Secret-Manager.
Führen Sie dieses Beispiel aus:
const defaults = {
server: { port: 3000 },
db: { host: "localhost", port: 27017, name: "mongodb" }
};
console.log(defaults.server.port, defaults.db.host);
3000 localhost
Dieses eigenständige JavaScript-Beispiel wird erfolgreich ausgeführt; die Ausgabe lautet 3000 localhost. Laden Sie das Paket in Ihrer Anwendung mit const config = require("config") und lesen Sie einen Wert mit config.get("server.port") aus. Für db.host verwenden Sie dasselbe Muster. Das obige Codebeispiel verwendet JavaScript-Objekte, um den Eigenschaftspfad zu veranschaulichen; die Konfigurationsdatei selbst bleibt JSON.
Ergänzen Sie für eine umgebungsspezifische Konfiguration eine Datei wie config/production.json, die nur die Werte enthält, die von den Standardwerten abweichen. Setzen Sie beim Start der Anwendung NODE_ENV, um die Bereitstellungsumgebung anzugeben. NODE_CONFIG ist die Umgebungsvariable des Pakets, mit der Konfigurationsüberschreibungen übergeben werden. Die genaue Syntax für NODE_CONFIG in der installierten Version finden Sie in der offiziellen Dokumentation zu Umgebungsvariablen; Informationen zur Reihenfolge, in der Dateien geladen werden, enthält die offizielle Dokumentation zu Konfigurationsdateien.
Verwenden Sie in jeder .json-Datei gültiges JSON und bleiben Sie beim Konfigurationsformat konsistent. Die oben genannten Dateinamen und Werte sind Beispiele; passen Sie sie an die Einstellungen Ihrer Anwendung an. Die Unterstützung für YAML, JSON5 und HJSON kann von der Paketversion und der Einrichtung abhängen. Prüfen Sie daher die Formatunterstützung, bevor Sie diese Formate verwenden. Für eine einfache Einrichtung genügen package.json, config/default.json und Anwendungscode, der Einstellungen über config.get ausliest.