问题标签 [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 回答
37 浏览

javascript - 使用 NodeJS 正确发送文件

考虑以下相当琐碎的中间件:

有几个问题我不确定如何处理:

  • 如果 res 在此中间件运行之前已经发出“关闭”,它将被卡住。
  • 如果 res 发出closeerror如何清理源流?autoClose只有在end读取所有数据后才会运行。但是,如果目标失败,它是如何传播到源的?我应该总是调用destroy源流吗?
0 投票
1 回答
811 浏览

node.js - _read() 的节点可读流何时调用

0 投票
1 回答
188 浏览

javascript - 为什么 child.stdin 可写?

为什么 Class:child_process.stdin 是可写流?我该如何推理? https://nodejs.org/api/child_process.html#child_process_child_stdin


背景:

新手来了 做 nodeschool 流冒险的“双工”问题。

我在这个问题上苦苦挣扎,而我(错误地)认为接口require('duplexer2')([Writable Stream],[Readable Stream])应该用作require('duplexer2')(child.stdout, child.stdin)

0 投票
1 回答
974 浏览

javascript - 当响应完成时,我应该在快速响应(流)对象中处理哪些事件?

我正在尝试在请求完成时自动记录。

我有这样的事情:

  • 这样做是否涵盖所有情况?(例如,当请求被中断时)
  • 对于每个请求,我最多会被调用一次吗?

如果任何一个答案是否定的,请包括如何做。

0 投票
1 回答
176 浏览

javascript - Node.js Stream :- Streams 函数不会为同一个文件第二次调用

SFTB,我有一个POST请求来到我的服务器multipart/form-data,现在我想从那个请求中获取文件的内容。

我正在读取通过提供的文件streams和管道,cvsParser这只是csv-streamify我们将内容传递给自定义Transform函数的一个实例,该函数使用http[我正在got为此使用] 获取资源,并且在获取它之后我正在压缩图像.

现在的问题是,当我第一次提交文件时,它就像魅力一样工作,但是,当我第二次尝试提交相同的文件时,它会跳过整个stream部分并直接跳转到finish事件处理程序。

第一次记录:-

我第二次提交相同文件时的日志[前端刷新和不刷新]

仅供参考,在前端我使用fetchAPI 发出POST请求。

我的服务器代码:-

谢谢。

0 投票
1 回答
187 浏览

node.js - 如何在读取回调处理程序中添加从节点流读取的数据的附加数据?

我正在创建一个可读流数组(来自包含 JSON 文档的文件),并试图将它们通过管道传输到另一个流。

文件中的数据正在通过……但是对于我在管道流中收到的每个对象,我想知道这些数据来自哪个文件:

输出:

需要文件路径来进一步处理读取的对象(in jsonStream.on('data') callback),但我不知道如何传递这些附加数据。

0 投票
0 回答
351 浏览

node.js - nodejs流 - 如何中止读取错误

我正在使用“多方”解析器在我的应用程序中读取和处理多部分表单数据。我的应用程序中间件读取上传的文件内容,即时解析它,如果成功,则发送到下一个中​​间件。如果没有,我必须中止请求并返回错误。

如果在解析过程中出现任何错误(即 readFile()),我想返回 HTTP 错误而不必消耗剩余的部分缓冲区。我相信可能有一个不错的方法来做到这一点,但我没有做对。

我尝试从我的 readFile() 中抛出异常,试图在 form.on('part', ...) 中捕获它。即使我能够捕捉到异常,它也没有中止流程。form.on(part,..) 的 return() 将从这个 evt 处理函数返回,但不会从外部函数返回。

根据 nodejs 流文档,我尝试从 readFile() 中发出错误事件并在 part.on('error', ...) 中处理错误。这也给出了相同的行为,并且不会结束处理。

我在这里想念什么?有没有合适的方法告诉流我不想进一步处理它..?

0 投票
1 回答
2505 浏览

node.js - ffmpeg mp3 通过节点 js 流式传输

我正在尝试剪切 mp3 并流式传输到浏览器,但在浏览器中它显示损坏的文件

0 投票
1 回答
261 浏览

javascript - 使用 browserSync 观看 Gulp

我正在尝试编写一个执行以下操作的 gulp 文件:

  1. 运行监视任务,在任何模板更改时重建 Handlebars 模板。
  2. 如果构建失败,它会通过 notify() 方法通知 BrowserSync,因此如果出现问题,我可以在浏览器中看到弹出窗口。手表不应该停止。
  3. 如果构建正常,它会调用 browserSync.reload()。

所以我想出了以下代码:

问题是如果我使用 gulp-plumber 'end' 事件是 emmits 并且 browserSync.reload() 被调用。所以我在浏览器中没有看到任何错误通知。另一方面,如果没有“管道工”,任何构建错误都会中断监视任务。

有任何想法吗?

0 投票
1 回答
928 浏览

node.js - Sailsjs 下载数据流

我有一个exceljs用来生成 excel 文件的sails 应用程序。查看他们的文档:

https://www.npmjs.com/package/exceljs#writing-xlsx

看来他们允许写入流。

当用户期待响应时,我该怎么做?

我阅读了以下内容:

http://sailsjs.org/documentation/concepts/custom-responses/adding-a-custom-response

http://sailsjs.org/documentation/concepts/custom-responses/default-responses

res.attachment()保存文件后我也尝试过,但没有成功。有什么我想念的吗?

编辑

下面的答案几乎是正确的。我做了以下,它的工作。以前的解决方案有时会损坏文件。

这适用于我的 EC2 实例和本地。