4

node.js を使用して単純なプロキシ サーバーをセットアップしようとしています。その背後にある考え方は、Web サービス呼び出しを簡単に検査およびデバッグするために、1 つの Web サービスに対して行われたすべての Web サービス呼び出しが node.js プロキシを通過するようにすることです。

そのために、次のコードを使用してリクエストをプロキシしようとしています。

var
    url = require('url'),
    http = require('http'),
    acceptor = http.createServer().listen(8008);

acceptor.on('request', function(request, response) {
    console.log('request ' + request.url);
    request.pause();
    var options = url.parse(request.url);
    options.headers = request.headers;
    options.method = request.method;
    options.agent = false;

    var connector = http.request(options, function(serverResponse) {
            serverResponse.pause();
            response.writeHeader(serverResponse.statusCode, serverResponse.headers);
            serverResponse.pipe(response);
            serverResponse.resume();
    });
    request.pipe(connector);
    request.resume();
});

しかし、応答をファイルするために検査/ダンプする場所がわかりません。node-inspector を使用して、次の行の応答オブジェクトを見ていました: serverResponse.pipe(response); しかし、応答の本文はまだ利用できません。

次の質問node.js プロキシされたリクエストボディを見つけましたが、それは CoffeeScript で書かれています。

4

1 に答える 1

0

アイデアは、独自の'data'ハンドラーを作成し、使用しないことpipe()です。
ストリームをパイプした後は、データを盗聴することはできません。

于 2014-10-17T05:30:32.960 に答える