首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js全局变量有时=1,有时= 0,为什么?

Node.js全局变量有时=1,有时= 0,为什么?
EN

Stack Overflow用户
提问于 2018-01-23 14:52:57
回答 1查看 43关注 0票数 0

问题:

我的网络应用程序运行在上。目前有2个VM实例运行该App网站。

奇怪的是,当一个特定的事件被调用(大约10次)时,似乎有两个特定全局变量的不同实例。

我这么说是因为有时全局数组的长度是0,有时是1,而实际上它并没有改变。

是什么原因造成的?

代码:

app.js

代码语言:javascript
运行
复制
global.accountsArray = [];

file1.js

代码语言:javascript
运行
复制
global.accountsArray.push(account);

file2.js

代码语言:javascript
运行
复制
eventEmitter.on('event', function (body) {
    console.log("EMITTER");
    //sometimes prints out 1, sometimes prints out 0
    console.log("Array length: "+global.accountsArray.length);
    //
    console.log("DESTINATION: "+body.block.destination);
    //sometimes empty, sometimes not
    console.log("ARRAY :"+global.accountsArray);
    //
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 15:06:44

这是什么原因?

内存中的变量accountsArray。任何重新启动您的进程或vm,都会重置变量。考虑使用一个具有弹性的存储,比如redis或memcache。

编辑

应该提到的是,另一个原因是因为每个VM中的变量都存在于内存中,因此没有通用的存储,所以会有奇怪的结果。同样,这个问题通过使用两个VM都可以使用的公共会话存储来解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48404562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档