0
我正在使用koa, 如何在一些条件满足时将用户请求发送到另一个服务器,然后从服务器获得响应并将其发送给用户,就好像我是代理服务器。 我使用http.request并获得资源,现在,我怎么管资源到用户的插座,就像原来的http服务器res.pipe(response)
nodejs pipe http对koa res的响应
例如
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的响应
idea:在一个函数中包装http.request,该函数用'resolve(res)'返回一个promise。从路由中,尝试'ctx.body = yield makeRequest(...)'。你的代码的一个问题是你的koa处理程序在请求回调完成之前返回。你需要等待它。 – danneu
@danneu好吧,我知道,但我该如何使用管道如https://github.com/koajs/koa/blob/master/lib/application.js#L227,所以我没有必要做了很多有关标题 – suconghou