0

我在玩 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);
4

1 回答 1

2

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

  1. 创建响应对象缓存目录。
  2. 使用 SHA-256 对 URL 进行哈希处理,并将结果用作您的文件名。
  3. 将响应对象流式传输到文件/从文件流式传输。
于 2013-10-07T17:40:29.787 回答