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 に答える