【问题标题】:NodeJS - One instance of class/module in 2 processesNodeJS - 2 个进程中的一个类/模块实例
【发布时间】:2021-06-10 13:22:39
【问题描述】:

我在导出它的文件中有一个类,如下所示:

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

问题

如何让第二个进程打印“更改的值”而不是“初始值”?

注意事项:

  • 我尝试在第一个文件之后运行第二个文件;
  • 这是我需要的一个非常简化的示例,我更改了上下文以使其更易于理解。

【问题讨论】:

    标签: javascript node.js module instance node-modules


    【解决方案1】:

    很难,我认为你不能在 2 个进程之间共享内存中的 seme 对象。

    也许您必须考虑创建包含数据的第三个进程。

    例如:dnodehttps://github.com/substack/dnode

    或者使用一些快速内存数据库作为 Redis


    进程 0:数据存储、dnode 或 Redis

    流程1:连接数据存储并设置新值

    流程2:连接数据存储并获取值

    【讨论】:

    • 我已经阅读了很多关于这个的问题,我在很多问题中都看到了 redis,但是,我不知道它是什么或如何使用它。你能给我一些开始吗?
    • 不过dnode看起来很有希望,我去看看。
    • 这是另一个大问题。1。创建redis服务器,可以在Docker或者local install找到。 2.使用ioredis连接redis。 3. Redis 有很多数据类型,在你的例子中可能你需要一个 SET:redis.set(key, newValue) 然后 redis.get(key)
    猜你喜欢
    • 1970-01-01
    • 2017-05-05
    • 2018-01-16
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多