【问题标题】:how to inspect requests response proxied through node.js如何检查通过 node.js 代理的请求响应
【发布时间】:2013-06-06 20:58:17
【问题描述】:

我正在尝试使用 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();
});

但我不知道在哪里检查/转储以提交响应。使用节点检查器,我正在查看响应对象: serverResponse.pipe(response);但响应的正文尚不可用。

我找到了以下问题node.js proxied request body,但它是用 CoffeeScript 编写的。

【问题讨论】:

    标签: node.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2017-04-04
      • 2016-06-05
      相关资源
      最近更新 更多