我在Nodejs中使用3个文件。 File1.js1 has a
counter = 11和getter() setter()
。 File2.js
将该值设置为counter=10
。但是当我在File3.js
中检索计数器的值时,我可以将旧值1,而不是由File2
设置的值。节点变量得到重置
//=====File1.js=====
var store = module.exports = {
counter: 1,
getCounter: function() {
return store.counter;
},
setCounter: function (value) {
store.counter = value;
}
}
//=====File2.js=====
var c = require('./File1');
c.setCounter(10);
console.log(c.getCounter()) //prints 10
//=====File3.js=====
var c = require('./File1');
console.log(c.getCounter()) //prints 1
这似乎是一个简单的概念unfaltered。我认为问题在这里,我不知道如何解决它。
File1和File2在Node-service-1上运行(可在http://localhost:1000处运行)并且File3在Node-service-2上运行(在http://localhost:1100处可用)。
在典型的场景中,多个用户访问Node-service-1和Node-service-2,只有第一个用户获得1000个可用。我使用portfinder
包获取下一个可用端口,并在1001上为User2运行Node-service-1。但Node-service-2不知道User2在端口1001上运行服务,并且错误地尝试获取1000(对于User2 )并失败。
所以问题是Node-service-2如何知道Node-service-1运行的端口?
我也相信套接字连接,我需要知道节点服务1运行的端口。那是对的吗 ? – mehtak
那么,您需要在一个节点实例上实现套接字侦听器,然后让另一个实例上的代码连接到正确的端口号。研究可用于节点实例之间通信的不同选项并选择最符合您需要的现有解决方案可能更有意义。 –
谢谢@Julian Goacher我会进一步研究它。 – mehtak