NodeJS - 2 个进程中 class/module 的一个实例
NodeJS - One instance of class/module in 2 processes
我在导出它的文件中有一个 class,如下所示:
myClass.js:
class testClass {
key = 'initial value';
constructor(){
return this;
}
}
module.exports = testClass;
然后我有2个节点文件分别运行:
let instance = new require("./myClass.js");
instance.key = 'changed value';
// Keeps running
和
let instance = new require("./myClass.js");
console.log(instance.key);
// Also keeps running
问题
如何让第二个进程打印“更改后的值”而不是“初始值”?
备注:
- 我试过 运行在第一个文件之后添加第二个文件;
- 这是我需要的一个非常简化的示例,我更改了上下文以使其更易于理解。
困难,我认为你不能在 2 个进程之间共享内存中的 seme 对象。
也许您必须考虑创建包含数据的第三个进程。
例如:dnode https://github.com/substack/dnode
或者使用一些快速内存数据库作为 Redis
进程 0:数据存储、dnode 或 Redis
进程 1:连接到数据存储并设置新值
流程 2:连接到数据存储并获取值
我在导出它的文件中有一个 class,如下所示:
myClass.js:
class testClass {
key = 'initial value';
constructor(){
return this;
}
}
module.exports = testClass;
然后我有2个节点文件分别运行:
let instance = new require("./myClass.js");
instance.key = 'changed value';
// Keeps running
和
let instance = new require("./myClass.js");
console.log(instance.key);
// Also keeps running
问题
如何让第二个进程打印“更改后的值”而不是“初始值”?
备注:
- 我试过 运行在第一个文件之后添加第二个文件;
- 这是我需要的一个非常简化的示例,我更改了上下文以使其更易于理解。
困难,我认为你不能在 2 个进程之间共享内存中的 seme 对象。
也许您必须考虑创建包含数据的第三个进程。
例如:dnode https://github.com/substack/dnode
或者使用一些快速内存数据库作为 Redis
进程 0:数据存储、dnode 或 Redis
进程 1:连接到数据存储并设置新值
流程 2:连接到数据存储并获取值