Node.js:process.env 与 global 有何不同?

Rea*_*eal 6 javascript node.js

设置环境变量与process.env.thing = 42创建全局变量有global.thing = 42什么不同?

当宁愿process.env.thingglobal?这两个对象的优缺点是什么?

Ale*_*yne 10

global是全局对象。process在全球范围内可用,因为它是 的属性global。实际上:

global.process === process //-> true
Run Code Online (Sandbox Code Playgroud)

process.env具有设置为系统环境变量的属性。这些可以在节点本身之外以多种方式设置,并通过访问 的属性来读入process.env

在命令行尝试:

FOO=bar node -e "process.env.FOO"
Run Code Online (Sandbox Code Playgroud)

进程模块只是一个全局可用的东西。


rc_*_*_dz 0

来自文档NodeAPI

process 对象是一个全局对象,它提供有关当前 Node.js 进程的信息并对其进行控制。作为全局变量,它始终可供 Node.js 应用程序使用,无需使用 require()。

您希望将环境变量附加到该对象,以确保全局变量没有其他污染。