node.js - 使用 SailsJS/Express 在请求之间将对象保存在内存中

标签 node.js express sails.js

我正在使用 SailsJS(一个构建在 Express 之上的框架)构建一个服务器,我需要在请求之间将一个对象保存在内存中。我想这样做是因为将它加载到数据库/从数据库加载时间太长。我有什么想法可以做到这一点吗?

这是我的代码:

var params = req.params.all();

Network.findOne({ id: params.id }, function(err, network) {
  if(network) {
    var synapticNetwork = synaptic.Network.fromJSON(network.jsonValue);
    if(synapticNetwork) { ...

具体来说,fromJSON() 函数花费的时间太长,我宁愿在服务器运行时将 synapticNetwork 对象保存在内存中(也就是在服务器运行时加载它)服务器启动并定期保存)。

最佳答案

有很多用于缓存目的的库,其中之一是 node-cache正如你所提到的。他们都共享相似的 api :

var cache = require('memory-cache');

// now just use the cache

cache.put('foo', 'bar');
console.log(cache.get('foo'))

你也可以实现你自己的模块,并在你需要的地方调用它:

var cache = {};

module.exports = {
    put: function(key, item) {
        cache[key] = item;
    },
    get: function(key) {
        return cache[key];
    }
}

关于node.js - 使用 SailsJS/Express 在请求之间将对象保存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172904/

相关文章:

javascript - 如何使用 Angular JS 获取 POST 请求的响应?

node.js - 如何将订单信息传递给sequelize.js 原始查询?

javascript - Node Express 逐个用户更改静态文件夹

javascript - express 返回帖子信息由另一个功能处理

node.js - 如何在模型的属性方法中正确使用水线 promise ?

javascript - Zombiejs 空 HTML

Node.js 中的 MySQL 隔离级别。连接中的每个查询是隔离的还是每个池都是隔离的?

javascript - Node.js/Express/JavaScript 范围问题

mongodb - SailsJS 关系未按预期工作

javascript - WebStorm - 未解析的变量或类型 - Sails/module.export