来自远程网址的koa.js流媒体响应

时间:2016-01-21 09:04:03

标签: node.js streaming koa

我想创建一个koa路由,其行为类似于另一个网址的代理,该路由提供的文件通常为几十兆字节。

因此我不想在做出回应时阻止。我目前正在使用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.

1 个答案:

答案 0 :(得分:5)

原来解决方案很简单:

var req = require('request');
//...
this.body = req(url);

这是因为this.body必须是可读的流,req(url)返回。感谢@danneu的解释。