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