有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

node process(process.env配置项目环境)

node.js 炮渣日记 3周前 (11-18) 16次浏览 已收录 0个评论 扫描二维码

项目开发的时候一般根据代码的运行环境不将环境分为开发、测试和生产,不同的环境有不同的配置信息。开发环境会对程式进行任意的调试和修改,所以环境可能会存在很多错误。测试环境与生产环境很相似,主要用来测试需要上线的项目和功能。一般是测试环境测试通过才会转到生产环境,来确保项目可以正常的运行。生产环境是在对外使用的真实线上环境,为保证系统的正常运行一般不会在生产环境做改动。

node process(process.env配置项目环境)

process

process(进程)是NodeJS提供的一个全局对象,可以提供当前NodeJS的进程信息。因为process是全局变量,所以无需通过 require()加载就可以使用。process对象提供一系列属性,用于返回系统信息。

node process(process.env配置项目环境)

process.env

env是process中的一个对象,可以返回当前项目运行所在环境信息。打开命令行输入node再输入process.env,就可以打印出process.env对象的相关信息。该对象是NodeJS所处的当前进程,允许开发者与该进程互动。这样我们就可以根据不同的环境,做一些环境配置上的处理。

node process(process.env配置项目环境)

process.env.NODE_ENV

从上面的process.env对象我们可以看到env对象中并没有NODE_ENV属性,而是在项目构建的时候通过设置得到的。NODE_ENV只是用户自定义的变量,只是这个变量语义比较恰当所以被大家一致采纳而已。当我们在服务启动时配置NODE_ENV,JS便可以通过process.env.NODE_ENV获取其值。我们可以通过判断这个变量区分开发环境或生产环境,这样也就可以实现根据不同的环境变量加载不同服务配置。

node process(process.env配置项目环境)

环境配置env.json

我们可以创建一个env.json文件来定义不同环境下的各服务器配置,比如:development、test、production分别对应开发、测试和生产环境。配置中可以根据项目需求来定义相应的设置,如后台服务器的ip、端口、数据库的用户名、密码、缓存驱动等信息。

node process(process.env配置项目环境)

加载环境配置env.json

我们可以在创建NodeJS服务的之后加载这个配置文件,根据环境变量 NODE_ENV 来加载了对应的各个环境变量配置,如果没有设置则默认使用 development。这里需要注意的是我们在加载配置信息的时候并不是直接将配置参数赋值给NODE_ENV属性,而是通过Object.assign将其拷贝到了env对象下。如果你直接将对象赋值给变量NODE_ENV,你会发现得到的是个[object object]而不是键值对(因为NODE_DNV是string类型,赋值之后对象被自动转换成string字符串)。

node process(process.env配置项目环境)

获取环境变量内的配置

获取我们刚才设置的项目配置信息只需要通过 process.env.params 拿到对应的变量值,比如我们想拿到刚刚配置的baseUrl可以通过process.env.baseUrl获取对应的值。当我们定义了NODE_ENV值时NodeJS会自动加载对应的配置信息,这样就可以方便我们在打包的时候快速切换运行环境。

node process(process.env配置项目环境)

package.json配置启动命令

定义NODE_ENV可以通过运行脚本来是实现,在package.json的JavaScript对象中通过 export NODE_ENV=development || SET “NODE_ENV=development” 来分别设置 Linux 和 Windows 系列系统的环境变量。这时候process.env.NODE_ENV就可以获取当前的环境变量对应的配置信息,这样我们在启动服务的时候就可以通过不同的命令来切换不同的运行环境。

node process(process.env配置项目环境)

总结:

如果不想用json文件也可以用js文件来定义配置,再利用module.exports 导出也一样。也可以参考Vue的给每个环境配置一个文件(.env.dev、.env.test、.env.serve),根据不同的环境加载不同的文件配置即可。

喜欢 (0)
炮渣日记
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址