一旦Node.js脚本运行,是否可以获取UPDATED环境variables?

一旦节点脚本已经运行,如何检索更新的环境variables?

考虑以下的一些任务。 如何更新环境variablesZ(即从系统上运行的其他脚本),以便函数在运行后输出不同的值?

因为在别处设置的环境variables被忽略,函数总是输出'undefined'。

gulp.task('z', function () { var z; setInterval(function(){ z = process.env.Z; console.log('Value of Z is: ' + z); }, 1000); }); 

运行Windows 7.我已经尝试了setsetx但是没有任何东西会持续到正在运行的节点脚本中。 我不认为这是可能的,因为通常不能在命令提示符之间传递环境variables而不重新启动它们(并使用setx )。 但是,那么用户是特别的,我之前感到惊讶。 这甚至有可能吗?

是的,这是可能的。 实际上有很多select。 您可以使用“进程间通信(IPC)”在多个脚本之间传递variables…

最简单的select可能是通过套接字,即使用redis。 这样做的好处是,您还可以使用它来在不同设备上运行的进程之间进行通信,如果将来需要这些进程。

另一个select是通过内置的过程信号: https : //nodejs.org/api/process.html#process_signal_events

还有很多其他的select/图书馆,每个人的利弊。 对于可伸缩性,您可能最擅长通过套接字进行通信,如果性能非常重要,则可以select使用共享内存的选项。

在这个问题上讨论了多个选项。 什么是最有效的node.js进程间通信库/方法?