首页 > 解决方案 > 在运行时更改 ENV 变量

问题描述

是否可以在已加载并启动的 NodeJS 进程中注入/更改当前环境变量?

在应用程序中公开接口不是一个选项,重新启动也不是一个有效的选项。

该进程在 docker 容器内运行,可能需要特定的 NodeJS 版本。

编辑:必须从应用程序源外部进行更改,因此process.env.ENV_VAR = "new env"无法进行。

标签: node.jsenvironment-variables

解决方案


无法修改正在运行的进程的环境变量。这不是 NodeJS 进程独有的。这就是 env var 在类似 UNIX 的操作系统上的工作方式。变量存在于进程的地址空间内。虽然它们通常最初放置在堆栈顶部附近的众所周知的位置,但当前 var 可能位于堆中的任意地址。环境变量是有意为每个进程私有的。因此,除非程序提供用于更改其环境变量的 API,否则一旦程序运行,您就无法修改它们。


推荐阅读