如何检查通过node.js代理的请求响应

时间:2013-06-06 20:58:18

标签: node.js

我正在尝试使用node.js来设置一个简单的代理服务器。这背后的想法是让对一个Web服务进行的所有Web服务调用都通过node.js代理,以便轻松检查和调试Web服务调用。

为此,我尝试使用以下代码来代理请求:

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 proxied request body,但它是用CoffeeScript编写的。

1 个答案:

答案 0 :(得分:0)

这个想法是编写自己的'data'处理程序,不要使用pipe() 管道传输后,您无法窃听数据。