Node.js 词条目录
前端Wiki/Node.js/实战/从脚本到 Web 服务

环境变量与配置管理

配置信息(数据库密码、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 加载且不进版本库。