环境变量?
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,那么类似,我们的nodejs在程序运行时也可以去设置一些运行时的参数。例如文件的存储位置,在开发时我们一般会把一些上传的文件放在本地,production的文件上传地址放在第三方的云服务器上进行存储;数据库的地址,这个就好理解了,开发用开发的数据库,测试用测试的数据库,生产环境就用生产环境的数据库这样会避免production上存在开发或者测试过程中产生的一些坏数据或假数据。显而易见,这样做的好处就是把各种环境隔离开来,互相不会干扰 在设置nodejs的环境变量时我们是把所需要的配置添加到process的env属性上,之后我们就能使用我们的配置了,类似于下面这样
使用第三方node包加载环境变量
如果让你添加环境变量是不是感觉有点麻烦?别怕,我们有众多的第三方node包可以使用例如cross-env、dotenv,下面是我的一些dotenv的使用经验,供大家参考: dot env是一个零依赖的node包,能够把你的node环境变量从.env
文件中加载到process.env上面,从而让你可以在程序的任何地方访问到你的环境变量。
- 第一步当然是安装依赖喽
npm install dotenv --save
- 在项目的根目录下新建一个
.env
文件,当然你也可以把这个文件放在项目的其它文件夹下,不过在加载的时候需要稍微设置一下
- .env文件在项目根目录下
require('.env').load();
- 在其它文件夹下
require('dotenv').load({path: 'your/dir/.env'});
- 然后再向你的
.env
文件里面添加环境变量,规则是变量名=变量值
,一行设置一个环境变量
TEST_VARIABLE=Hello, my test!
执行你的js引入dotenv的js代码
我使用了load方法来加载env,当然你也可以使用config方法,都是同样的效果,下面是dotenv的部分源码:
module.exports.config = config
module.exports.load = config
module.exports.parse = parse
里面还暴露出来了一个parse方法,设置你的文件的编码格式的,就不细说了 使用时需要注意的是它在解析你的env文件时会把任何变量值转换成字符串,如果你的变量值是null或者undefined,或者false,就不要设置变量值,让它空着就好
Enjoy IT!