保存/缓存Web响应的最简单方法

时间:2013-10-07 15:55:16

标签: node.js mongodb mongoose

我正在玩node.js.使用http-proxy,我想创建一个简单的Web代理来发出请求,然后在传回响应之前将响应存储在某处。如果我然后检测到没有互联网连接或某处设置了某个标志,我想重播我已经存在的响应。因此,URL将是“密钥”,整个响应将是“值”。

我的问题是,序列化此响应对象的最简单方法是什么,以便以后可以重放?我正在看mongodb和mongoosejs,但是我推迟了因为mongoose希望我为我的对象创建一个模式,我只想将整个响应对象转储到某个地方(以URL作为键)。有更简单的方法吗?

这是我的超级简单node.js代理代码:

var httpProxy = require('http-proxy');

var server = httpProxy.createServer(function (req, res, proxy) {

  var buffer = httpProxy.buffer(req);

  proxy.proxyRequest(req, res, {
    host: 'url.to.proxy.com',
    port: 80,
    buffer: buffer
  });
});

server.proxy.on('end', function (req) {
  console.log("The request was proxied.",req.url);
});

server.listen(8000);

1 个答案:

答案 0 :(得分:2)

最简单的方法是将响应对象存储在文件中;你不需要数据库。

  1. 创建响应对象缓存目录。
  2. 使用SHA-256对URL进行哈希处理,并将结果用作文件名。
  3. 将响应对象流式传输到文件或从文件传输。