问题标签 [nodejs-stream]

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 回答
4972 浏览

node.js - 如何从内存中的字节创建 readStream?

我遇到的所有流创建示例都以文件为中心。我正在使用一个接口,该接口需要我将读取流通过管道传输到写入流。我的输入是内存中的原始字节,而不是文件。

https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options

如何通过传入“原始字节”而不是文件描述符来完成^^^?

0 投票
0 回答
332 浏览

node.js - 返回带有管道的流的 Nodejs 模块

我正在尝试创建一个返回Transform流的 Nodejs 模块。它将一个可读流作为其输入。但是,我希望输出在返回之前通过另一个流传递。例如:

当我这样做时,流myTransform被忽略。例如,我意识到我可以将管道移动到JSONStream其他地方,request('https://...').pipe(myTranform).pipe(JSONStream...)但我想将该部分保留为模块的一部分。

0 投票
0 回答
322 浏览

node.js - Node.js 多个进程在同一文件上写入流

多个进程可以使用 writestream 将数据写入同一个文件吗?性能影响和数据丢失怎么样?

0 投票
1 回答
2888 浏览

pipe - Node js双工流示例的管道问题

我想为节点js双工流写一个例子,这样对于两个双工流A和B

如果 A 写了一些东西,它应该被流 B 读取,反之亦然

我是这样写的:

现在即使我已经通过管道传输了两个流,也没有得到所需的输出:

0 投票
1 回答
1498 浏览

javascript - Socket.io-Stream 未发送到客户端

我正在尝试从服务器向客户端发送(中继)连续的 utf-8 数据流。虽然我可以观察到达服务器的数据,但我无法将其通过管道传输到 Socket 并将其转发给客户端。

节点服务器,

我可以在 nodejs 控制台中看到的数据.getBlockStream()看起来像这个片段,

客户,

在浏览器控制台中,我只看到此功能,

谁能帮我理解我做错了什么?

0 投票
1 回答
1220 浏览

node.js - 如何在nodejs中使用pdfkit将png格式保存为pdf格式[包含代码]

我正在做服务器端编码,想将文件扩展名转换为 pdf 扩展名,它应该保存在 S3 中。任何建议都会很有价值。我是这个领域的初学者,如果这个问题冒犯了任何人,我深表歉意。

上传文件:(文件,bucketName,路径)=>{

0 投票
1 回答
688 浏览

node.js - 超出最大堆栈大小 - 事件流

有这段代码:

问题是当查询返回大量文档时,该函数将失败

这个函数所做的是获取一个过滤器,基于过滤器运行一个 mongodb 查询,并将结果文档写入一个文件,然后进行 ftp-ed。

该功能在next(null, doc);

关于如何改进代码而不必增加调用堆栈大小的任何建议?

0 投票
2 回答
478 浏览

javascript - 在 NodeJS 中,如何在不手动添加换行符的情况下将行打印到文件中?

我试图弄清楚如何简单地将表示一行的字符串写入文件,无论我调用什么函数都会自动附加一个换行符。

'\n'我已经尝试为此使用默认的 NodeJS 文件系统库,但如果不手动附加到字符串,我无法让它以任何方式工作。

这是我尝试过的代码:

但是,输出文件test.out.txt包含以下没有换行符的行:

我希望它看起来像这样:

请注意,我没有尝试记录消息,也没有尝试重定向标准输出。

有什么方法可以通过自动添加新行字符来打印它?

0 投票
1 回答
4612 浏览

node.js - 使用流使用 ExcelJS 修改现有 Excel 文件

我有一个模板 Excel 文件,我需要使用可读流将数据写入文件,然后将结果文件流回服务器响应以供下载。

到目前为止,这是我使用exceljs 得到的。但这不是“真正的”流式传输,因为工作簿在发送到响应之前已保存到内存中。

0 投票
4 回答
18278 浏览

node.js - _read() 未在可读流上实现

这个问题是如何真正实现可读流的读取方法。

我有一个可读流的实现:

我收到此错误

events.js:136 抛出错误;// 未处理的“错误”事件 ^

错误 [ERR_STREAM_READ_NOT_IMPLEMENTED]:_read() 未在 Readable._read (_stream_readable.js:554:22) 处 Readable.read (_stream_readable.js:445:10) 在 resume_ (_stream_readable.js:825:12) 在 _combinedTickCallback (internal/process/next_tick.js:138:11) at process._tickCallback (internal/process/next_tick.js:180:9) at Function.Module.runMain (module.js:684:11) at startup (bootstrap_node. js:191:16) 在 bootstrap_node.js:613:3

错误发生的原因很明显,我们需要这样做:

我真的不明白如何实现 read 方法。

唯一有效的就是打电话

如果我尝试做这样的事情:

然后什么也没有发生 - 没有任何东西来自可读!

此外,这些文章说您不需要实现 read 方法:

https://github.com/substack/stream-handbook#creating-a-readable-stream

https://medium.freecodecamp.org/node-js-streams-everything-you-need-to-know-c9141306be93

我的问题是- 为什么在 read 方法中调用 push 什么都不做?唯一对我有用的就是在别处调用 readable.push() 。