環境變量與配置管理
配置和代碼分離,密鑰不進倉庫。
範本正文
# .env(本地用,必須寫進 .gitignore)
DATABASE_URL=postgres://user:pass@127.0.0.1:5432/app
API_KEY=sk-xxxx
LOG_LEVEL=debug
# .env.example(提交到倉庫,給別人做參考,值留空)
DATABASE_URL=
API_KEY=
LOG_LEVEL=info
# 讀取(Python)
import os
from dotenv import load_dotenv
load_dotenv()
db_url = os.environ["DATABASE_URL"] # 缺失就報錯,別給默認值
# 讀取(Node)
const apiKey = process.env.API_KEY;
if (!apiKey) throw new Error("缺少 API_KEY");怎麼用
任何需要密鑰或環境差異的項目都照這個做。
使用要點
- 密鑰絕對不能進 Git;一旦提交過,改密鑰比刪提交更省事。
- 必需配置缺失時直接報錯退出,靜默用默認值會埋下隱患。