【问题标题】:How to create Application Variable in Node Js Application如何在 Node Js 应用程序中创建应用程序变量
【发布时间】:2019-01-16 22:43:42
【问题描述】:

我有一个要求,在那个要求中,我必须为所有正在运行的进程使用一个具有相同值的变量,如果我从一个进程中更改,那么它应该反映在所有进程中。我在 java 中有一个想法,我们有一个应用程序变量。

在 Node js 中,我只使用 Heroku 变量,我没有其他节点变量的经验,所以如果有人有任何想法,请建议我,因为我们无法更新 Heroku 变量,这些变量作为常量工作。

谢谢

【问题讨论】:

  • 什么意思?您是否想要多个 Heroku 应用程序的常量变量?
  • 在节点 js 中,您可以拥有一个服务器范围的变量,任何“进程”都可以访问

标签: node.js heroku environment-variables


【解决方案1】:

我建议使用 Redis 之类的东西在进程之间共享数据,为此有一个很棒的节点模块:https://github.com/NodeRedis/node_redis。您还可以在甚至不是在 Node.js 中编写的进程之间共享数据。

还可以将数据存储到非易失性存储中,这意味着如果流程循环,您不会丢失它。

如果需要,还可以使用一个 Redis 数据库跨机器共享数据。

例如

var redis = require("redis");

var redisConfig = { 
    "host": "127.0.0.1"
};
var redisClient = redis.createClient(redisConfig);

client.on("error", function (err) {
    console.log("Error " + err);
});

client.set("key", "value");

client.get("key", function(err, reply) {
    console.log(reply);
});

【讨论】:

    【解决方案2】:

    经过大量的研发,终于得到了答案。我们可以在process object 中创建一个属性。在节点服务器中处理预定义的对象。

    process.env.variable_name = 'Value';
    

    您可以在任何进程中访问此值并在任何进程中更新。此进程的值对于所有进程始终相同。

    console.log(process.env.variable_name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 2018-07-15
      • 2018-09-29
      • 2019-04-28
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多