javascript - 有没有办法在两个 JavaScript Node 运行之间共享和编辑全局变量?

标签 javascript node.js

主函数文件main.js有:

var nLastPingTime = 0,
    nLastPingNumber = 0;

    module.exports = {

      compareData: function(nPingTime, nLastPingNumber){
        nLastPingTime = nPingTime;
        nLastPingNumber = nLastPingNumber;
      }

    };

现在另外两个文件 dataGenOne.js 和 dataGenTwo.js 看起来像这样:

const mainDataHolder = require('./main.js');

//Gets data from some API's here

mainDataHolder.compareData(nPingTime, nLastPingNumber);

然后开始运行:

node dataGenOne.js

node dataGenTwo.js

问题是 main.js 文件在两组数据之间不共享 nLastPingTime 和 nLastPingNumber。

例如,当查看 nLastPingNumber 时,它是专门来自 dataGenOne.js 的数字,而不是来自 dataGenTwo.js 的数字(反之亦然)。

我相信这是因为它们在两个单独的线程上运行。

有什么办法可以实现我想要做的事情吗?另一种方法可能是连接数据库或写入文件,但如果可能的话我宁愿不这样做。

最佳答案

为了实现您想要做的事情,让两个 Node 进程进行通信,您将创建进程,让我们称之为“spawn”,它会生成两个进程(让我们称它们为p1和p2),然后处理它们之间的通信p1 和 p2。

因此,spawn 将是一个非常简单的进程,只需连接 p1 和 p2 的事件,然后将这些事件转发到其他进程。我没有这方面的有效示例,但如果你看一下 here你应该能够很快地将它们拼凑起来。

关于javascript - 有没有办法在两个 JavaScript Node 运行之间共享和编辑全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50880510/

相关文章:

Javascript 对象性能偏好

node.js - 使用 Node.js HTTP API 或 Websockets 流式传输数据?

javascript - 无法在 Windows 10 x64 上安装 hiredis@0.5.0

javascript - 在 AJAX/Javascript 中调用长时间运行的进程时如何更新 UI?

javascript - react native : How to get <TextInput/> to start from right to left?

javascript - 解析服务器云代码错误 141 : Unauthorized

node.js - 从 HapiJs 服务器下载文件

node.js - js 网格和自动完成

javascript - jquery如何获取ID和Title

javascript - 在 Firefox 中动态更改对象的过滤器属性