process 是 Node 全局对象(无需 require)。process.env 是环境变量的容器:系统 shell 传入的变量、启动时 NODE_ENV=production 写入的值都在这里。十二要素应用方法论要求「配置存环境变量」——数据库密码、API key 绝不写进代码,而从 env 注入。
process 还提供生存工具:process.exit(1) 立即退出(1 表示错误退出,CI 据此判失败)、process.argv 接收命令行参数、process.on('uncaughtException') 兜底致命错误、process.stdout/stderr 写日志。注意 process.env 的值永远是字符串:PORT=8080 读出来是 '8080',要 Number() 转一下;改 env 只影响当前进程。
// 读取并应用环境变量(配置 ≠ 代码) const PORT = Number(process.env.PORT) || 3000; const isProd = process.env.NODE_ENV === 'production'; // 启动方式:NODE_ENV=production PORT=8080 node app.js // 跨平台:npx cross-env NODE_ENV=production node app.js const http = require('http'); http.createServer((req, res) => res.end('ok')) .listen(PORT, () => console.log('监听', PORT)); // 命令行参数 console.log(process.argv); // node app.js --name Tom → ['node','app.js','--name','Tom'] // 优雅退出:错误时返回退出码 1 process.on('uncaughtException', err => { console.error('致命错误:', err.message); process.exit(1); // 非 0 = 失败,CI 判红 });