【问题标题】:reload process.env variables without reboot无需重启即可重新加载 process.env 变量
【发布时间】:2025-09-11 04:45:01
【问题描述】:

我们可以在不重新启动 nodejs 应用程序或服务器的情况下使用更新后的值重新加载环境变量 (process.env) 吗?

换句话说,我创建了一个新的环境变量 (NEW_VARIABLE) 并在我的 Windows 7 机器中设置了一个值。现在我已经在我的 NodeJS 应用程序中编写了一个读取环境变量的函数,如下所示。

setInterval(() => {
    console.log(process.env.NEW_VARIABLE);
}, 5000);

【问题讨论】:

标签: node.js environment-variables


【解决方案1】:

是的,您可以,请参见下面的代码,其中我们运行了 2 个循环,一个用于读取,另一个用于递增变量。

setInterval(() => {
    process.env.NEW_VARIABLE++;
},
1000);

setInterval(() => {
    console.log(process.env.NEW_VARIABLE);
},
1000);

当您更新变量时,下一次读取将被更新。

除非您使用一些具有缓存行为的包,否则我已经在一些包中看到了这一点。

【讨论】:

  • 您好 Neo,感谢您的快速回复。我从命令行 SET NEW_VARIABLE=test 在 Windows 中创建了新的环境变量,然后使用命令“node app”运行该应用程序。在应用程序运行时,我更改了环境变量 SET NEW_VARIABLE=test123 的值。但是上面的函数仍然显示旧值“test”而不是“test123”。
【解决方案2】:

你应该试试这样的

process.env.NEW_VARIABLE = process.env.mode + 1;

process.env.NEW_VARIABLE = process.env.NEW_VARIABLE++;

这将对其进行临时修改。

【讨论】: