主题
环境变量
环境变量通过 process.env 读取,值始终是字符串或 undefined。NODE_ENV 只是约定俗成的变量,不是 Node.js 限定为 development、production 的枚举。
js
const port = Number(process.env.PORT ?? 3000)
const isProduction = process.env.NODE_ENV === 'production'
if (!Number.isInteger(port) || port < 1 || port > 65535) {
throw new Error('PORT 必须是 1 到 65535 的整数')
}.env
Node.js 可直接加载 dotenv 格式文件:
bash
node --env-file=.env src/index.js
node --env-file-if-exists=.env.local src/index.js.env 只适合本地开发或受控部署环境。生产密钥应由部署平台、密钥管理服务或 CI 注入,且不得提交到仓库、日志或错误响应。
配置原则
- 在启动阶段读取、校验并标准化配置;业务代码使用已校验的配置对象。
- 区分机密与普通配置;机密不输出、不写入前端构建产物。
process.env在运行中可被修改,避免把它当作类型安全的配置源。
