我想创建一个 koa
路由,它充当另一个 url 的代理,它传送一个通常为几十兆字节的文件。
因此我希望在回复时不要阻塞。我目前正在使用 this.body = yield request.get(url);
,其中 request 是 [co-request
] 1模块。
如何将响应流式传输回客户端?
编辑:
我现在正在做以下事情:
var req = require('request');
//...
this.body = req(url).pipe(fs.createWriteStream(this.params.what));
如果我将 url
粘贴到我的浏览器中,我会得到一个很好的文件。
但是,如果我得到一个 Error: Cannot pipe。不可读。
在我的 route 。
最佳答案
原来解决方案很简单:
var req = require('request');
//...
this.body = req(url);
这是因为 this.body
必须是可读流,req(url)
返回。感谢@danneu求解释。
关于node.js - 来自远程 url 的 koa.js 流响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919328/