Node.js 持久化/缓存web响应的最简单方法

Node.js 持久化/缓存web响应的最简单方法,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在玩node.js。使用,我想创建一个简单的web代理来发出请求,然后在返回响应之前将响应隐藏在某个地方。如果我随后检测到没有internet连接或某个地方设置了某个标志,我想重播我隐藏的响应。因此URL将是“键”,而整个响应将是“值” 我的问题是,序列化此响应对象以便稍后可以重播的最简单方法是什么?我在看mongodb和mongoosejs,但是我被推迟了,因为mongoose希望我为我的对象创建一个模式,我只想把整个响应对象转储到某个地方(URL作为一个键)。有没有更简单的方法 下面是我

我正在玩node.js。使用,我想创建一个简单的web代理来发出请求,然后在返回响应之前将响应隐藏在某个地方。如果我随后检测到没有internet连接或某个地方设置了某个标志,我想重播我隐藏的响应。因此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);

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

  • 创建响应对象缓存目录
  • 使用SHA-256散列URL,并将结果用作文件名
  • 将响应对象流式传输到文件或从文件流式传输响应对象

  • MongoDB希望您创建一个模式?听起来不对。Mongoose有-那就不要使用Mongoose,只需使用mongodb即可。@CoreyOgburn许多ORM和ODM都支持mongodb的预定义但灵活的模式,事实上很多人甚至说mongodb不是无模式的,而是灵活的模式,比混用mongodb简单得多,因为正如你所说,我可以直接流到它。