环境变量与配置管理
配置和代码分离,密钥不进仓库。
模板正文
# .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;一旦提交过,改密钥比删提交更省事。
- 必需配置缺失时直接报错退出,静默用默认值会埋下隐患。