NodeJS和Hapi是否记得API调用之间的数据?

时间:2017-01-06 00:01:18

标签: php node.js hapijs

我用NodeJS和Hapi构建了一个小应用程序。只要应用程序正在运行,就应该在内存中保存一些数据。例如,我们公司会列出一些被阻止的单词"在数据库中。

我想要的是什么:

当应用程序启动时,我们从数据库中获取此数据,然后将数据存储在全局变量中。我们再也没有为这些数据打过数据库。我们假设这个应用程序将每周或每两周重新启动。

我的恐惧:

如果这是一个PHP应用程序,它会在每次加载页面时进行此数据库查询。我必须使用像Memcache这样的东西来保存数据。否则我每分钟就会滥用数百个额外的电话来滥用数据库。

我的理想:

如果我可以使用Java或Clojure,那么在启动时加载数据并在应用程序运行时将其保存在内存中会非常容易。

那么NodeJS遵循哪个模型? PHP还是Clojure?

1 个答案:

答案 0 :(得分:1)

您的节点应用程序在内存中具有持续数据,从引导到被杀死时。您可以将数据存储在全局变量中,并且它将在连接之间保留。

您可以通过声明变量,每次请求进入应用程序时递增变量并记录结果来轻松确认:

let counter = 0;

const server = require('http').createServer((req, res) => {
    counter++;

    res.statusCode = 200;
    res.end(counter.toString());

    console.log(counter);
});

server.listen(3000);
  

注意:使用请求favicon的浏览器时,此示例将在每个请求中递增两次。