Skip to content

环境变量

环境变量通过 process.env 读取,值始终是字符串或 undefinedNODE_ENV 只是约定俗成的变量,不是 Node.js 限定为 developmentproduction 的枚举。

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 在运行中可被修改,避免把它当作类型安全的配置源。

基于 MIT 许可发布