nodejs管道对koa res的http响应

时间:2016-07-26 05:52:26

标签: node.js http koa

我正在使用koa, 如何在某些条件满足时将用户的请求发送到另一台服务器,然后从服务器获得响应并将其发送给用户,就像我是代理服务器一样。 我使用http.request获得res,现在如何将res传输到用户的套接字,就像原始的http服务器res.pipe(response)

一样

例如

var options = {
      host: "blog.suconghou.cn",
      port: 80,
      encoding: null,
      path: "http://blog.suconghou.cn",
      headers: {
        Host: "blog.suconghou.cn"
      }
    };

    http.request(options, function(res)
    {
        res.pipe(process.stdout);
        console.log(res.body,typeof res);
        ctx.body=res; // ctx is this in app.use
    }).end();

它不起作用,我不知道如何将它传达给koa的回复

1 个答案:

答案 0 :(得分:-2)

request库支持流,使用它可以执行以下操作。

let request = require('request');

function *mid() {
    let options = {
        host: "blog.suconghou.cn",
        port: 80,
        encoding: null,
        path: "http://blog.suconghou.cn",
        headers: {
            Host: "blog.suconghou.cn"
        }
    };

    this.req.pipe(request(options))
            .pipe(this);
            .once('error', console.log);
}