环境变量与配置管理
配置信息(数据库密码、API 密钥、第三方 Token)不应写死在代码里,而应走环境变量:每个环境(开发/测试/生产)注入不同的值,代码零修改即可切换。这是“十二要素应用”的核心实践之一。
读取用 process.env.KEY,写入用命令行前缀或 .env 文件(配合 dotenv 包自动加载)。还要给配置加默认值与校验,缺关键配置时启动即报错,而不是跑起来才出 bug。
- 环境变量:dev/test/prod 各自注入,代码与配置分离
- 默认值:process.env.PORT || 3000,给本地开发留方便
- 缺关键配置直接 process.exit(1),启动时报错好过运行时埋雷
JS
// config.js:集中读取并校验配置,只导出一份 const required = ['DB_HOST', 'DB_PASS']; for (const key of required) { if (!process.env[key]) { console.error('缺少关键环境变量:', key); process.exit(1); // 启动即失败,暴露问题 } } const config = { port: parseInt(process.env.PORT || '3000', 10), env: process.env.NODE_ENV || 'development', db: { host: process.env.DB_HOST, pass: process.env.DB_PASS, }, }; module.exports = config; // .env 文件(给 dotenv 加载,不要提交到 git) // DB_HOST=localhost // DB_PASS=s3cret // NODE_ENV=development // 启动方式(Shell 前缀注入): // PORT=8080 NODE_ENV=production node app.js // app.js const config = require('./config'); console.log('以 %s 模式启动,端口', config.env, config.port);
本节要点配置走环境变量:集中读取、给默认值、关键项缺失即启动失败;.env 用 dotenv 加载且不进版本库。




