Config File in NodeJS utilizzando npm config
Ho un'applicazione SAAS on-cloud costruita su Angular / NodeJS / Postgres + stack MongoDB che può connettersi al database del cliente, ai magazzini cloud, ai bucket S3 ecc. Per caricare le informazioni. Una volta ottenute le informazioni di connessione dal front-end Angular, è necessario archiviare queste informazioni per il recupero futuro.
Example :
Angular Front-end
<form>
Database Type :
Host :
Port :
Username:
Password :
S3Bucket :
Region :
bucket-name :
Access key :
</form>
eccetera.
Ho bisogno di queste informazioni salvate per un accesso successivo. Come suggerito da Abdullah Deliogullari nella domanda originale, sto cercando di utilizzare il modulo di configurazione npm config . Ma come faccio a utilizzare il pacchetto config per scrivere il file di configurazione e caricarlo in un'applicazione in esecuzione.
ad esempio, mentre la mia applicazione è in esecuzione, devo scrivere le informazioni sul bucket (ad esempio S3) in un file customer.config (dal frontend JSON) e successivamente, quando richiesto per recuperare i dati, utilizzare customer.config per connettersi al bucket S3.
La parte "get" che sono in grado di capire ma la parte di scrittura (aggiungendo dinamicamente una nuova sezione) è ciò che non sono in grado di capire.
Esempio dal frontend quando passo i valori come
["ct_postgres":
{"host":"3.15.xxx.xxx",
"port":"5132",
"dbname":"wcdb"
}]
questo dovrebbe essere scritto nel file di configurazione. Quindi sto cercando qualcosa come config.put / write. La prossima volta che voglio connettermi al cliente postgresdb faccio config.get () e mi fornisce i dettagli della connessione.
Domanda originale
Risposte
Per prima cosa dovresti installare questo pacchetto
npm install config
Dopo di che crea il file di configurazione nella directory del tuo progetto (il nome "config" è un must). In questo file creare i file development.json e production.json (questi nomi sono facoltativi). Il contenuto di development.json potrebbe essere così
{
"SERVER" : {
"port" : 5000
},
"PASSWORDHASH" : {
"saltRounds" : 10
}
}
Nel tuo file javascript ad esempio nel file app.js, prima dovresti includere la libreria, e poi puoi ottenere informazioni sulla configurazione tramite questo modulo
const config = require('config');
const port = config.get("SERVER.port");
app.listen(port);
L'ultimo passaggio dovrebbe essere l'aggiunta di questo nome file development.json alla variabile NODE_ENV
NODE_ENV=development node app.js
Quindi, se vuoi aggiornare il tuo file json in base ai nuovi dati provenienti dal tuo frontend, puoi farlo fondamentalmente
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));