我正在使用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的回复
答案 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);
}