process.env 介绍
process(进程)对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,无需使用 require()。
process.env 属性会返回包含用户环境的对象。
文档:http://nodejs.cn/api/process.html#process_process_env
很明显的一个使用场景,依靠这个我们就可以给服务器上打上一个标签。这样的话,我们就能根据不同的环境,做一些配置上的处理。
如何配置环境变量
Windows临时配置
直接在cmd环境配置即可,查看环境变量,添加环境变量,删除环境变量。
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 set NODE_ENV #如果不存在则添加环境变量 set NODE_ENV=production #环境变量追加值 set 变量名=%变量名%;变量内容 set path=%path%;C:\web;C:\Tools #某些时候需要删除环境变量 set NODE_ENV=
Windows 永久配置
右键(此电脑) -> 属性(R) -> 高级系统设置 -> 环境变量(N)...
Linux临时配置
查看环境变量,添加环境变量,删除环境变量
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 echo $NODE_ENV #如果不存在则添加环境变量 export NODE_ENV=production #要删除环境变量 unset NODE_ENV #显示所有的环境变量 env
Linux永久配置
推荐使用当前用户配置文件 ~/.bash_profile,不推荐使用 /etc/profile
打开配置文件:
# 当前用户生效 vi ~/.bash_profile
在文件末尾添加如下语句:
export NODE_ENV=production
修改完成后,执行下列命令立即生效
source ~/.bash_profile
PM2 配置
pm2 start server.js --env production
我看见有资料提示可以这样做,结果测试无效,最后只能在 pm2 的生态系统文件里设置
module.exports = { apps: [{ name: 'cnrestfulapi', script: './server.js', env: { NODE_ENV: 'production' }, ... ] }
案例
./config/index.js 文件
var configDefault = require("./config.default"); var configLocal = require("./config.local"); /** * 生产环境,配置文件切换 */ if (process.env.NODE_ENV == "production") { module.exports = configDefault; } else { module.exports = configLocal; }
./bin/test.js 文件
const config = require("../config"); console.log(config);
备注:
通过 npm 的配置文件 packge.json, pm2 生态系统配置文件,也都可以设置 process.env
参考:
https://github.com/test/koa-restful-api-seed
https://blog.csdn.net/u012971339/article/details/81876165
修改时间 2022-11-27
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。