簡體   English   中英

NodeJS 中的配置文件使用 npm 配置

[英]Config File in NodeJS using npm config

我有一個基於 Angular/NodeJS/Postgres+MongoDB 堆棧的雲端 SAAS 應用程序,可以連接到客戶數據庫、雲倉庫、S3 存儲桶等以加載信息。 從 Angular 前端獲取連接信息后,我需要存儲此信息以供將來檢索。

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

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

等等

我需要保存此信息以供以后訪問。 正如 Abdullah Deliogullari 在原始問題中所建議的那樣,我正在嘗試使用配置模塊npm config 但是我如何使用 package 配置來編寫配置文件並將其加載到正在運行的應用程序中。

即,當我的應用程序正在運行時,我需要將(比如 S3)存儲桶信息寫入 customer.config 文件(來自前端 JSON),稍后在需要檢索數據時使用 customer.config 連接到 S3 存儲桶。

我能夠理解的“獲取”部分,但我無法理解寫入部分(動態添加新部分)。

當我傳入如下值時來自前端的示例


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

這應該寫入配置文件。 所以我正在尋找類似 config.put/write 的東西。 下次我想連接到客戶 postgresdb 時,我會執行 config.get() 並為我提供連接詳細信息。

原問題

首先你應該安裝這個 package

npm install config

之后在您的項目目錄中創建配置文件(名稱“config”是必須的)。 在此文件中創建 development.json 和 production.json 文件(這些名稱是可選的)。 development.json的內容可能是這樣的

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

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

在你的 javascript 文件例如 app.js 文件中,首先你應該包含庫,然后你可以通過這個模塊獲取配置信息

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

最后一步應該是將此 development.json 文件名添加到 NODE_ENV 變量

NODE_ENV=development node app.js

所以如果你想根據來自前端的新數據更新你的 json 文件,你基本上可以這樣做

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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM