Home  >  Article  >  Web Front-end  >  Questions about Node environment variable process.env

Questions about Node environment variable process.env

一个新手
一个新手Original
2017-10-25 13:40:191989browse

Preface

I have been working on the deployment project with the operation and maintenance GG for the past two days.

One problem we encountered was a problem with our dev, uat, and product environments.

Because the front-end and back-end are separated, there will be the problem of switching the domain name of the back-end interface during the development and deployment process. After struggling all afternoon and searching various information, I figured out this Nodeenvironment variableprocess.env.

The following is a record of problem solving. Hope this helps someone who doesn't understand.

Node environment variables

First of all, when we are developing single-page applications of react and vue, I believe everyone is familiar with the configuration files. process.env is not unfamiliar.
Can not remember? Black question mark.jpg.

These are the following things.

Questions about Node environment variable process.env

Literally, it is this env attribute, in development and production The configuration will be slightly different in different environments.

Okay, let's start to see what this so-called process is.

文档:http://nodejs.cn/api/process....官方解释:process 对象是
一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 require()。

process (process) is actually a global variable that exists in nodejs.
Then, we can get some interesting things through this so-called process.

But today we mainly talk about process.env.

process.env

What is this?

Official: process.envThe property returns a user Environmental information object.

Document: http://nodejs.cn/api/process....

Oh oh oh, it turns out that there is a property that can return the environment where the project is running some information.

What’s the use?

It's an obvious usage scenario, relying on this we can put a label on the server. In this case, we can do some configuration processing according to different environments. For example, turning on sourceMap, switching the domain name of the backend interface, etc.

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

How to configure environment variables

The following describes how to configure environment variables for each environment.

Windows configuration

Temporary configuration

You can configure it directly in the cmd environment, view environment variables, add environment variables, and delete environment variables.

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

Permanent configuration

Right click (this computer) -> Properties (R) -> Advanced system settings -> Environment variables (N)...

Linux configuration

Temporary

View environment variables, add environment variables, delete environment variables

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

Permanent

Open the configuration file location

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

Add a statement similar to the following at the end of the file to set or modify environment variables

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

After the final modification is completed, you need to run the following statement to reload the system

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

Solve the problem of back-end interface change caused by the environment

After figuring out this problem, we can set different NODE_ENV on machines in different environments. Of course, this field is not necessarily certain.
You can also change it to other NODE_ENV_NIZUISHUAI etc. It is customized anyway.

Solution steps

1. Modify the backend address configuration in the code

It’s very simple, just use process.env.NODE_ENVThis field is used to judge. (process is a global attribute of node, just use it directly)

Questions about Node environment variable process.env

##2. Set the environment variable

export NODE_ENV=dev

on linux and then you can happily start the project.

At the end

Because my current project is React server-side rendering. Therefore, the backend request forwarding is not handed over to

nginx for processing. Like ordinary pure single-page applications,
nginx is generally used to forward requests.

This article was written relatively quickly, haha. If there are any mistakes in the article, please point it out and I will learn from it.

In addition, if this small article is helpful to you, you might as well give me a like. This will be a big motivation for me to continue.


The above is the detailed content of Questions about Node environment variable process.env. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn