一旦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.我已经尝试了set
和setx
但是没有任何东西会持续到正在运行的节点脚本中。 我不认为这是可能的,因为通常不能在命令提示符之间传递环境variables而不重新启动它们(并使用setx
)。 但是,那么用户是特别的,我之前感到惊讶。 这甚至有可能吗?
是的,这是可能的。 实际上有很多select。 您可以使用“进程间通信(IPC)”在多个脚本之间传递variables…
最简单的select可能是通过套接字,即使用redis。 这样做的好处是,您还可以使用它来在不同设备上运行的进程之间进行通信,如果将来需要这些进程。
另一个select是通过内置的过程信号: https : //nodejs.org/api/process.html#process_signal_events
还有很多其他的select/图书馆,每个人的利弊。 对于可伸缩性,您可能最擅长通过套接字进行通信,如果性能非常重要,则可以select使用共享内存的选项。
在这个问题上讨论了多个选项。 什么是最有效的node.js进程间通信库/方法?