node.js - 来自远程 url 的 koa.js 流响应

标签 node.js streaming koa

我想创建一个 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/

相关文章:

c# - 在 .NET 中执行 stream.CopyTo(anotherStream) 时如何获得复制百分比?

java - 在 Java 中 : why some Stream methods take int instead of byte or even char?

android - stagefright CameraSource::read 在 Samsung Galaxy S2 上返回小帧(20 字节)

javascript - 有什么方法可以导出生成器函数?

stream - 如何设置要在 Koa 响应中下载的文件的名称?

node.js - koa框架中的before过滤器如何实现?

logging - 我如何插入 socket.io 的内置日志系统来生成我自己的消息?

Javascript 在 Node.js 上下文中访问 ejs 变量

node.js - MongoDB 全文搜索 : Overflow sort stage buffered data usage

node.js - Node js mongoose MissingSchemaError : Schema hasn't been registered for model