Node.js: 使用 dotenv 套件

此文件屬於處理機密資訊指南的一部分。請在此處查看完整指南:如何使用 Node.js 處理機密資訊

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 為您提供即用型 Node.js cloud 環境,助您加快開發進度:

  • 只需一個簡單的 git push,即可於數秒內部署至生產環境,無需額外工具或手動設定。
  • 可自訂您的網域名稱,並享有自動配置 HTTPS 憑證,讓您的應用程式安全無憂,無需額外設定。
  • 自動備份一鍵更新可預測的收費模式,讓您專注於開發功能,Stackhero 會為您管理基礎設施。
  • 建基於專屬私有基礎設施,確保穩定效能及高度安全。

節省時間,減少營運負擔:您只需幾分鐘,即可於 Stackhero 的 Node.js cloud hosting 上運行您的應用程式。

在實際專案中,您通常需要管理多個機密資訊。例如,連接資料庫時,可能需要主機名稱、用戶名稱和密碼。

管理單一機密資訊很簡單,但如果要同時處理多個,啟動指令就會變得很複雜。例如:

POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com POSTGRESQL_USER=admin POSTGRESQL_PASSWORD=myPassword node app.js

這樣很快就會變得難以閱讀與維護。在生產環境中,您可能還需要更多變數,這種方式就不太實用。

這時候,dotenv 套件就能派上用場。

使用 dotenv,您可以將機密資訊存放在一個獨立的 .env 檔案中。

首先,請安裝 dotenv 套件:

npm install dotenv

接著,建立一個 .env 檔案來存放您的變數:

POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
POSTGRESQL_USER=admin
POSTGRESQL_PASSWORD=myPassword

為了保護您的機密資訊,請確保 .env 檔案沒有被加入到 Git repository。您可以將它加入 .gitignore 檔案:

echo ".env" >> .gitignore

最後,在 app.js 檔案最上方載入 dotenv 套件:

require("dotenv").config();

這樣設定後,當您在開發機器上用 node app.js 啟動應用程式時,dotenv 會自動讀取 .env 檔案。在生產環境中,則不需要 .env 檔案,環境變數會直接從 Node.js 服務的設定中取得,您可以透過 Stackhero 控制台來管理。