问题标签 [node-streams]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 蓝鸟的正确承诺
我有一个大致如下的代码(元 CoffeeScript):
现在的问题是:我可以摆脱allRecords
蓄电池吗?
node.js - 将数据管道传输到尚未准备好接收数据的可写流
有没有办法将可读流连接到 Node.js 中的可写流,其中可写流尚未准备好接收数据?换句话说,我想将可读与可写连接起来,但我想在程序的稍后位置初始化可写,包括定义写方法。也许我们必须实现 write 方法,但是有没有办法以类似于暂停可读流的方式暂停可写流?或者,也许我们可以使用中间直通/转换流并在那里缓冲数据,然后再将数据通过管道传输到可写对象!
例如,通常我们这样做:
但我想做类似的事情:
只是想知道这是否可能以及如何正确地做到这一点,到目前为止都无法弄清楚这两者。
我想我希望在中间转换流中缓冲数据,然后再将其连接/传送到可写流,然后,一旦连接,在任何新数据之前先流式传输缓冲的数据。似乎是一个合理的做法,找不到任何关于此的信息。
node.js - 如何在节点 js/sails js 中拆分输入文件(图像)流?
我想将输入流分成2个流。因为我通过文件上传发送 2 张图片..
所以在我的控制器中我这样写
这包含 2 个图像的详细信息。例如长度显示 2 个图像的总和。
所以我想要的是如下所示:
我应该做些什么改变?我怎样才能做到这一点?
node.js - 等待所有流完成 - 流式传输文件目录
我在 pkgcloud 中使用client.upload来上传文件目录。在所有流完成后如何执行回调?是否有一种内置方法来注册每个流的“完成”事件并在它们全部触发后执行回调?
node.js - 将流通过管道传输到 s3.upload()
我目前正在使用一个名为s3-upload-stream的 node.js 插件将非常大的文件流式传输到 Amazon S3。它使用多部分 API,并且在大多数情况下运行良好。
但是,这个模块已经过时了,我已经不得不对其进行修改(作者也已弃用它)。今天又遇到了亚马逊的一个问题,很想采纳作者的建议,开始使用官方的aws-sdk来完成我的上传。
但。
官方 SDK 似乎不支持管道到s3.upload()
. s3.upload 的本质是您必须将可读流作为参数传递给 S3 构造函数。
我有大约 120 多个用户代码模块,它们执行各种文件处理,并且它们不知道其输出的最终目的地。引擎交给他们一个可管道的可写输出流,然后他们通过管道传递给它。我不能给他们一个AWS.S3
对象并要求他们upload()
在不向所有模块添加代码的情况下调用它。我使用的原因s3-upload-stream
是因为它支持管道。
有没有办法让 aws-sdks3.upload()
我可以通过管道将流传输到?
node.js - 发出错误时节点流挂起
我有一个正在检查 CSV 的流。它工作正常,除非发出错误,即使在我发回响应后它也会挂起。
我可以通过添加销毁方法来修复它,但它仍然很慢并且会挂起几秒钟。有没有更好的方法来结束/销毁 Transform 流?
编辑:
这是我如何使用 busboy 的流:
json - 有没有办法发送 gulp.src(some data) 而不是 glob?
我希望能够编辑 JSON,然后通过 gulp 流发送它。我知道有 gulp-json-edit 但我想了解它是如何完成的并自己做。在这种情况下,要更改基本授权。
例如,像这样:
但是,这当然行不通,因为data
它不是一个 glob。然后我如何data
以一种可以将其传递给 gulp.src() 的方式进行操作?
javascript - Map multiple objects to single object in stream
I have some very large (> 500MB) JSON files that I need to map to a new format and upload to a new DB.
The old format:
The new format:
I was achieving this with small datasets like this, processing the 'original' size first:
The problem comes with the very large datasets, where I can't load the hundreds of megabytes of JSON into memory all at once. This seems like a great time to use streams, but of course if I read the file in chunks, running .find() on a small array to find the 'original' size won't work. If I scan through the whole file to find originals and then scan through again to add the other sizes to what I've found, I end up with the whole dataset in memory anyway.
I know of JSONStream, which would be great if I was doing a simple 1-1 remapping of my objects.
Surely I can't be the first one to run into this kind of problem. What solutions have been used in the past? How can I approach this?
node.js - 处理有条件未使用的 http.IncomingMessage
我想通过 restify 服务器将上游 http.IncomingMessage 转发给客户端。这就是我到现在为止的想法。它提供转发能力。但是我认为这可能会导致内存泄漏:
- 我假设在上游的情况下,
404
此代码会泄漏upstreamRes
主体(1),因为它从未被消耗(否pipe(somewhere)
)? - 一个不应该泄漏
upstreamRes
身体的明显解决方案(2)是将其通过管道输送到/dev/null
. 这个问题有替代/更好的解决方案吗?
node.js - 如何使用 Node.js 创建带有缓冲区的读取流
我有这个json:
我正在尝试使用 createReadStream 将其上传到 bigquery。当我在本地保存它时,我成功了:
现在我正在尝试在不保存本地的情况下执行此操作 - 使用缓冲区:
但我收到此错误: