3
我想創建一個koa
路由,該路由就像另一個url的代理,它提供的文件通常爲幾十兆字節。koa.js來自遠程URL的流式響應
因此,我想在做出迴應時不要阻止。目前我正在使用this.body = yield request.get(url);
,其中請求是[co-request
] 1模塊。
如何將響應流回客戶端?
編輯:
我現在做了以下內容:
var req = require('request');
//...
this.body = req(url).pipe(fs.createWriteStream(this.params.what));
如果我貼在我的瀏覽器url
,我得到一個文件就好了。 但是,如果我在我的路線中獲得Error: Cannot pipe. Not readable.
。
你在正確的軌道上,但你只需要設置'this.body'爲可讀流。你的回答(使用'request'模塊)是可行的,因爲'req(url)'返回一個可讀的流。一般來說,當你想直接在Koa/co中使用流時,你不會使用yield。 – danneu
@danneu有道理。 – nha