Konfigurationsdatei in NodeJS mit npm config

Nov 11 2020

Ich habe eine On-Cloud-SAAS-Anwendung, die auf Angular / NodeJS / Postgres + MongoDB-Stack basiert und eine Verbindung zur Kunden-DB, Cloud-Warehouses, S3-Buckets usw. herstellen kann, um Informationen zu laden. Sobald ich die Verbindungsinformationen vom Angular-Frontend erhalten habe, muss ich diese Informationen für den zukünftigen Abruf speichern.

Example :
Angular Front-end
<form>
Database Type : 
Host : 
Port : 
Username: 
Password :

S3Bucket : 
Region :
bucket-name :
Access key :
</form>

usw.

Ich muss diese Informationen für den späteren Zugriff speichern. Wie von Abdullah Deliogullari in der ursprünglichen Frage vorgeschlagen, versuche ich, das Konfigurationsmodul npm config zu verwenden . Aber wie verwende ich die Paketkonfiguration, um eine Konfigurationsdatei zu schreiben und sie in eine laufende Anwendung zu laden?

Das heißt, während meine Anwendung ausgeführt wird, muss ich die Bucket-Informationen (z. B. S3) in eine customer.config-Datei (vom Frontend-JSON) schreiben und später, wenn Daten abgerufen werden müssen, die customer.config verwenden, um eine Verbindung zum S3-Bucket herzustellen.

Der "get" -Teil, den ich verstehen kann, aber der Schreibabschnitt (dynamisches Hinzufügen eines neuen Abschnitts) ist das, was ich nicht herausfinden kann.

Beispiel aus dem Frontend, wenn ich die Werte wie übergebe


 ["ct_postgres":
       {"host":"3.15.xxx.xxx", 
         "port":"5132",
         "dbname":"wcdb"     
      }]

Dies sollte in die Konfigurationsdatei geschrieben werden. Also so etwas wie config.put / write suche ich. Wenn ich das nächste Mal eine Verbindung zum Kunden postgresdb herstellen möchte, mache ich config.get () und es gibt mir die Verbindungsdetails.

Ursprüngliche Frage

Antworten

AbdullahDeliogullari Nov 11 2020 at 13:33

Zuerst sollten Sie dieses Paket installieren

npm install config

Danach erstellen Sie eine Konfigurationsdatei in Ihrem Projektverzeichnis (Name "config" ist ein Muss). Erstellen Sie in dieser Datei die Dateien development.json und Production.json (diese Namen sind optional). Der Inhalt von development.json könnte so sein

{
  "SERVER" : {
     "port" : 5000
  },

  "PASSWORDHASH" : {
    "saltRounds" : 10
  }
}

In Ihrer Javascript-Datei, beispielsweise in der Datei app.js, sollten Sie zuerst die Bibliothek einschließen, und dann können Sie über dieses Modul Konfigurationsinformationen abrufen

const config = require('config');
const port = config.get("SERVER.port");
app.listen(port);

Der letzte Schritt sollte darin bestehen, diesen Dateinamen development.json zur Variablen NODE_ENV hinzuzufügen

NODE_ENV=development node app.js

Wenn Sie also Ihre JSON-Datei basierend auf neuen Daten aus Ihrem Frontend aktualisieren möchten, können Sie dies grundsätzlich tun

var fs = require('fs');
var file_content = fs.readFileSync("development.json");
var content = JSON.parse(file_content);
content.SERVER.port = 6000;
fs.writeFileSync("development.json", JSON.stringify(content));