Node.js process.env环境变量配置与多环境接口切换实战

作者:星河

时间:2026-10-22

浏览:553

本文详细解析Node.js中process.env全局变量的用法,涵盖Windows与Linux下临时及永久环境变量的配置方法。重点讲解如何利用process.env.NODE_ENV区分dev、uat和product环境,实现前后端分离项目中后端接口域名的动态切换,解决多环境部署时的配置差异问题。

文章目录

Node.js process.env环境变量配置与多环境接口切换实战

前言

近期在推进项目部署工作时,遇到了开发(dev)、测试(uat)与生产(product)多环境配置的问题。

由于采用前后端分离架构,开发与部署过程中涉及后端接口域名的切换。经过一下午的资料查阅与实践,终于理清了Node.js中process.env环境变量的使用逻辑。

此处记录解决该问题的过程,旨在为遇到类似困惑的开发者提供参考。

Node环境变量与process对象解析

Node环境变量

在进行React或Vue单页应用开发时,配置文件中的process.env想必大家并不陌生。

若对此感到陌生,可参考相关图示说明。

具体表现为以下配置项。

Node.js process.env环境变量配置与多环境接口切换实战

从字面理解,env属性在development(开发)和production(生产)等不同环境下,其配置值存在差异。

接下来深入探讨process的具体含义。

官方文档地址:http://nodejs.cn/api/process.html

官方解释指出:process对象是一个全局变量,提供关于当前Node.js进程的信息与控制能力。作为对象,它在Node.js应用程序中始终可用,无需通过require()引入。

简而言之,process是Node.js中存在的全局变量。

通过该进程对象,我们可以获取一些关键信息。

本文重点聚焦于process.env的使用。

process.env属性详解与应用场景

process.env

它是什么?

官方定义:process.env属性返回一个包含用户环境信息的对象。

相关文档:http://nodejs.cn/api/process.html#process_process_env

由此可见,该属性用于返回项目运行所在环境的相关信息。

它有何实际用途?

一个典型应用场景是:利用该属性为服务器环境打上标签,从而根据不同环境执行不同的配置处理。例如,根据环境开启sourceMap或切换后端接口域名。


你是 dev 环境
他是 uat 环境
她是 product 环境。

Windows与Linux环境变量配置方法

如何配置环境变量

以下介绍各环境下环境变量的具体配置方法。

Windows配置

临时配置

可直接在CMD环境中进行操作,包括查看、添加或删除环境变量。


#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 
set NODE_ENV 
#如果不存在则添加环境变量 
set NODE_ENV=production 
#环境变量追加值 set 变量名=%变量名%;变量内容 
set path=%path%;C:\web;C:\Tools 
#某些时候需要删除环境变量 
set NODE_ENV=

永久配置

操作路径为:右键点击“此电脑” -> 属性 -> 高级系统设置 -> 环境变量。

Linux配置

临时配置

同样支持查看、添加或删除环境变量操作。


#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
echo $NODE_ENV
#如果不存在则添加环境变量
export NODE_ENV=production
#环境变量追加值
export path=$path:/home/download:/usr/local/
#某些时候需要删除环境变量
unset NODE_ENV
#某些时候需要显示所有的环境变量
env

永久配置

需进入配置文件所在目录进行编辑。


# 所有用户都生效
vim /etc/profile
# 当前用户生效
vim ~/.bash_profile

在文件末尾添加类似如下语句以设置或修改变量。


# 在文件末尾添加如下格式的环境变量
export path=$path:/home/download:/usr/local/
export NODE_ENV = product

修改完成后,需执行以下命令使系统重新加载配置。


# 修改/etc/profile文件后
source /etc/profile
# 修改~/.bash_profile文件后
source ~/.bash_profile

利用NODE_ENV解决多环境接口切换问题

解决环境导致后端接口变换问题

明确上述概念后,即可在不同环境的机器上设置不同的NODE_ENV值。需注意,该字段名可自定义,例如改为NODE_ENV_NIZUISHUAI等,只要保持一致即可。

解决步骤

第一步:修改代码中的后端地址配置。

实现方式很简单,直接利用 process.env.NODE_ENV 字段进行判断即可(process是Node全局属性,可直接使用)。

Node.js process.env环境变量配置与多环境接口切换实战

第二步:在Linux服务器上设置对应的环境变量。


export NODE_ENV=dev

完成上述配置后,即可正常启动项目运行。

说在最后

当前项目采用React服务端渲染(SSR),因此后端请求转发未交由Nginx处理。对于纯单页应用,通常由Nginx负责请求转发。

本文成文较快,若内容存在疏漏,欢迎指正,以便共同学习进步。

若本文对您有所帮助,欢迎点赞,这将激励我继续创作。

感谢阅读。

参考文献

  • 环境变量-JasperXu的博客 :http://sorex.cnblogs.com/p/6200940.html
  • 如何查看并设置NODE_ENV的值? : http://cnodejs.org/topic/587dc8a62967eeb01aafe87b
  • Node.js的process模块 : http://www.css88.com/archives/4548

注:【如何配置环境变量】部分内容为引用自JasperXu博客的环境变量配置说明。

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对本站的支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章