HOWTO · Node.js
在 Node.js 中建立和儲存配置
本教程演示瞭如何在 Node.js 中建立和儲存配置。
本頁內容
集中管理設定,可以讓連接埠、資料庫主機等值與應用程式邏輯分開。npm 套件 config 會載入 Node.js 應用程式的設定,讓程式碼能從同一處讀取這些值。先建立預設設定檔;如果開發、測試、預備環境與正式環境需要不同值,再加入各環境專用的設定檔。以下範例使用 JSON,且不需要 Express。
在 Node.js 中安裝 node-config 以建立及儲存設定
在專案目錄中執行 npm install config,安裝名稱為 config 的 npm 套件。npm 會將它記錄在 package.json 中,因此專案在其他地方安裝時也能取得這項相依套件。套件名稱是 config;node-config 是常見的簡稱,不是執行 npm 安裝時要使用的名稱。
建立 config/default.json,存放應用程式共用的值。JSON 的屬性名稱與字串值都必須使用雙引號。例如,檔案內容可以是 {"server":{"port":3000},"db":{"host":"localhost","port":27017,"name":"mongodb"}}。請勿將機密資訊放進會提交至原始碼控制的檔案;應透過部署環境或秘密管理工具提供憑證。
執行以下範例:
const defaults = {
server: { port: 3000 },
db: { host: "localhost", port: 27017, name: "mongodb" }
};
console.log(defaults.server.port, defaults.db.host);
3000 localhost
這個獨立 JavaScript 範例已成功完成,輸出為 3000 localhost。在應用程式中,使用 const config = require("config") 載入套件,再以 config.get("server.port") 讀取值;讀取 db.host 時也使用相同方式。上方的程式碼範例以 JavaScript 物件呈現屬性路徑;設定檔本身仍是 JSON。
若要設定特定環境,可新增 config/production.json 之類的檔案,只放入與預設值不同的項目。啟動應用程式時,設定 NODE_ENV 以指定部署環境。NODE_CONFIG 是此套件用來提供設定覆寫值的環境變數。若要查閱已安裝版本的 NODE_CONFIG 確切語法,請參考官方環境變數指南;檔案載入優先順序則請參考官方設定檔指南。
每個 .json 檔案都應使用有效的 JSON,並保持設定格式一致。以上檔名與值僅供示範,請依應用程式的設定需求調整。YAML、JSON5 與 HJSON 等格式是否支援,可能取決於套件版本與設定方式;使用前請先確認格式支援情況。基本設定只需要 package.json、config/default.json,以及透過 config.get 讀取設定的應用程式程式碼。