各位在构建 Node.js 应用程序的流程一般都是本地开发,然后在内部公司服务器,云服务器或容器内部(可能使用 Docker)来进行部署上线。
在很久很久以前,大家就开始使用环境变量来进行参数传递了,通过环境变量的切换,应用可以以不同的方式运行起来,不管你需要什么配置,都可以通过环境变量进行传输,甚至是非常大段的文本,看起来很简单,也很优雅。
今天这篇文章就介绍了基础的环境变量的用法,以及如何用环境变量来让应用可以在不同的地方运行。
如果你的应用还没用到环境变量?那么,一定得看一看这一篇文章,虽然基础,但是很实用。
其实在 Node.js 应用中,环境变量是必不可少的一部分,大多数 Node.js 应用会拿它做一些羞羞的事情。如果你想不到它能做什么,那么,告诉你一个口诀 ”任何需要根据环境改变的地方都应该使用环境变量“,虽然配置或者其他工具也能达到同样的效果,相信我,环境变量才是实践到现在最方便可靠的选择。
各位大佬比较常用的地方有:
1、启动的参数,咱们内部经常用来获取端口 PORT 的部分
2、一些启动以来的文件夹,敏感的路径等
3、环境,判断应用启动所在的地方
4、一些不为人知的秘密,啊,是密码
5、调试信息,比如 DEBUG=***
这些都是基本的场景,我们来看看是怎么用的。
使用环境变量
很常见的,用户可能正在为 Express/koa 服务器设置端口号。一般来说,会有在不同环境中区分端口的需求(例如,分段,测试,生产)并避免与其他应用程序冲突。
但是在开发过程中,其实不怎么关心,这都是部署的事情。以下是如何在代码中使用环境变量来获取端口的方法。
// server.js
constport=process.env.PORT;
console.log(`Your port is ${port}`);
通过来获取环境变量是非常常见的用法,这个时候,我们可以通过下面的代码来传入这个值,这样,这个值就是由外部控制,而不是硬编码了。
PORT=8626nodeserver.js
如果你需要传递多个环境变量,可以通过空格来进行区分。
PORT=8626NODE_ENV=developmentnodeserver.js
使用文件管理
当你的环境变量变多了之后,可以使用例如这类模块来读取你的环境变量。
比如创建一个文件,记得千万不要提交到服务器(否则会被版本控制记录下来),里面的内容则是你的环境变量。
NODE_ENV=development
PORT=8626
# Set your database/API connection information here
API_KEY=**************************
API_URL=**************************
安装模块自然是必不可少的。
npm i dotenv --save
安装完之后自然是如何读取这些环境变量了,你可以通过下面的示例代码获取。
// server.js
console.log(`Your port is ${process.env.PORT}`);// undefined
constdotenv=require('dotenv');
dotenv.config();
console.log(`Your port is ${process.env.PORT}`);// 8626
最开始代码显示 PORT 环境变量的初始值,这个值将是 undefined 的。然后它需要依赖 dotenv 包并执行其配置功能,该功能读取文件并设置环境变量。最后代码就能通过和之前一样的方式读取到环境端口了。
领取专属 10元无门槛券
私享最新 技术干货