问题标签 [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.

0 投票
1 回答
532 浏览

node.js - 蓝鸟的正确承诺

我有一个大致如下的代码(元 CoffeeScript):

现在的问题是:我可以摆脱allRecords蓄电池吗?

0 投票
1 回答
1263 浏览

node.js - 将数据管道传输到尚未准备好接收数据的可写流

有没有办法将可读流连接到 Node.js 中的可写流,其中可写流尚未准备好接收数据?换句话说,我想将可读与可写连接起来,但我想在程序的稍后位置初始化可写,包括定义写方法。也许我们必须实现 write 方法,但是有没有办法以类似于暂停可读流的方式暂停可写流?或者,也许我们可以使用中间直通/转换流并在那里缓冲数据,然后再将数据通过管道传输到可写对象!

例如,通常我们这样做:

但我想做类似的事情:

只是想知道这是否可能以及如何正确地做到这一点,到目前为止都无法弄清楚这两者。

我想我希望在中间转换流中缓冲数据,然后再将其连接/传送到可写流,然后,一旦连接,在任何新数据之前先流式传输缓冲的数据。似乎是一个合理的做法,找不到任何关于此的信息。

0 投票
1 回答
486 浏览

node.js - 如何在节点 js/sails js 中拆分输入文件(图像)流?

我想将输入流分成2个流。因为我通过文件上传发送 2 张图片..

所以在我的控制器中我这样写

这包含 2 个图像的详细信息。例如长度显示 2 个图像的总和。

所以我想要的是如下所示:

我应该做些什么改变?我怎样才能做到这一点?

0 投票
2 回答
13111 浏览

node.js - 等待所有流完成 - 流式传输文件目录

我在 pkgcloud 中使用client.upload上传文件目录。在所有流完成后如何执行回调?是否有一种内置方法来注册每个流的“完成”事件并在它们全部触发后执行回调?

0 投票
13 回答
110672 浏览

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()我可以通过管道将流传输到?

0 投票
0 回答
514 浏览

node.js - 发出错误时节点流挂起

我有一个正在检查 CSV 的流。它工作正常,除非发出错误,即使在我发回响应后它也会挂起。

我可以通过添加销毁方法来修复它,但它仍然很慢并且会挂起几秒钟。有没有更好的方法来结束/销毁 Transform 流?

编辑:

这是我如何使用 busboy 的流:

0 投票
1 回答
205 浏览

json - 有没有办法发送 gulp.src(some data) 而不是 glob?

我希望能够编辑 JSON,然后通过 gulp 流发送它。我知道有 gulp-json-edit 但我想了解它是如何完成的并自己做。在这种情况下,要更改基本授权。

例如,像这样:

但是,这当然行不通,因为data它不是一个 glob。然后我如何data以一种可以将其传递给 gulp.src() 的方式进行操作?

0 投票
2 回答
491 浏览

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?

0 投票
1 回答
373 浏览

node.js - 处理有条件未使用的 http.IncomingMessage

我想通过 restify 服务器将上游 http.IncomingMessage 转发给客户端。这就是我到现在为止的想法。它提供转发能力。但是我认为这可能会导致内存泄漏:

  • 我假设在上游的情况下,404此代码会泄漏upstreamRes主体(1),因为它从未被消耗(否pipe(somewhere))?
  • 一个不应该泄漏upstreamRes身体的明显解决方案(2)是将其通过管道输送到/dev/null. 这个问题有替代/更好的解决方案吗?
0 投票
1 回答
19354 浏览

node.js - 如何使用 Node.js 创建带有缓冲区的读取流

我有这个json:

我正在尝试使用 createReadStream 将其上传到 bigquery。当我在本地保存它时,我成功了:

现在我正在尝试在不保存本地的情况下执行此操作 - 使用缓冲区:

但我收到此错误: