如何從 Node.js 讀取環境變數
Node.js 的 process 核心模組提供了 env 屬性,該屬性包含了程序啟動時設定的所有環境變數。
以下程式碼執行 app.js 並設定了 USER_ID 和 USER_KEY。
USER_ID=239482 USER_KEY=foobar node app.js
這將把 USER_ID 作為 239482、USER_KEY 作為 foobar 傳入。這適合測試,但對於生產環境,你可能需要配置一些 bash 指令碼來匯出變數。
注意:
process不需要被匯入,它是 Node.js 中的一個全域性物件。
這是一個訪問我們在上面程式碼中設定的 USER_ID 和 USER_KEY 環境變數的示例。
.(..); // "239482"
.(..); // "foobar"
你可以用同樣的方式訪問你設定的任何自定義環境變數。
Node.js 20 引入了對 .env 檔案的實驗性支援。
現在,你可以在執行 Node.js 應用程式時使用 --env-file 標誌來指定一個環境檔案。以下是一個 .env 檔案示例,以及如何使用 process.env 訪問其變數。
# .env file
PORT=3000
在你的 js 檔案中
.(..); // "3000"
使用在 .env 檔案中設定的環境變數執行 app.js 檔案。
node --env-file=.env app.js
此命令會載入 .env 檔案中的所有環境變數,使它們在應用程式中透過 process.env 可用。
此外,你還可以傳遞多個 --env-file 引數。後續檔案會覆蓋先前檔案中定義的已存在變數。
node --env-file=.env --env-file=.development.env app.js
注意:如果同一個變數在環境和檔案中都定義了,那麼環境中的值會優先。
如果你想可選地從 .env 檔案讀取,可以使用 --env-file-if-exists 標誌來避免在檔案不存在時丟擲錯誤。
node --env-file-if-exists=.env app.js