问题标签 [node.js-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 投票
2 回答
4041 浏览

javascript - NodeJS parseStream,定义一个块的起点和终点

对 Node 的文件系统解析感到困惑。这是我的代码:

这导致......什么都没有发生。XML2JS/解析器根本没有输出。当我尝试时console.log(chunk),似乎chunks没有基于字节大小以外的任何东西以任何有意义的块输出。一个“块”的输出是:

这个块里面有很多很多<product>来自 XML 的条目。该块将在一个条目的中间某处结束,<product>而下一个块将从其中断处开始。

主要问题是如何获得createReadStream从 开始<product和结束的输出块</product>

编辑:为了获得正确的输出,这是 XML 从第一个开始到结束的<product>样子:

0 投票
1 回答
1810 浏览

node.js - node.js 进程的额外标准输出流

node.js API 文档在生成子进程时使用额外的 stdio (fd=4):

该 stdio 将可通过ChildProcess.stdio[fd].

子进程如何访问这些额外的 stdio?让我们在文件描述符 3 (fd=3) 上使用流而不是管道。

0 投票
3 回答
63424 浏览

node.js - 如何实现可写流

我想将数据从 amazon kinesis 流传输到 s3 日志或 bunyan 日志。

该示例适用于文件写入流或标准输出。我将如何实现自己的可写流?

这不起作用,说它没有“开”的方法

我必须为自己的自定义可写流实现哪些方法,文档似乎表明我需要实现“写入”而不是“开启”

0 投票
2 回答
2556 浏览

node.js - “可读”事件发生两次

Thie 文件“zeros.txt”包含 700 个字符“0”

据我了解,在调用 read(10) 之后,流必须停止并等待新的 read() 调用。但是,调用的结果:

0 投票
1 回答
3880 浏览

node.js - 使用带有请求包和函数 pipe() 的 nodejs 服务器?

我目前正在使用 nodejs 服务器来模拟后端。服务器是一个网络服务器,并在不同的请求上返回 json 对象,完美无瑕。现在我必须从另一个域获取 json 对象,所以我必须代理服务器。我在 npm中找到了一个名为request的包。我可以让这个简单的例子工作,但我必须转发整个网页。

我的代理代码如下所示:

我正在登录真实服务器并且它运行正常,我可以跟踪获取响应,但正文是空的。我只想通过request.pipe函数从nodejs服务器传递整个网站。有任何想法吗?

0 投票
2 回答
4766 浏览

node.js - Node.js 流式传输到 zip 存档并流式传输 zip 存档作为对客户端的响应

是否可以使用 Node.js 流构建一个 zip 存档并在创建时通过对 HTTP GET 请求的响应将该 zip 存档提供给客户端/用户?我正在寻找一种解决方案,该解决方案最好避免将整个 zip 缓冲到服务器上的内存中。

0 投票
0 回答
651 浏览

node.js - 在 node.js 流中使用 buffer 和 buffer.toString() 的内存考虑

我正在执行 readstream.pipe(transformstream).pipe(writeStream)。应用程序使用 readstream 从文件系统读取 xml --> 使用转换流基于不同的标签进行一些操作 --> 将其写入另一个文件系统。

在转换流内部的转换操作期间。我正在为每个块做 buffer.toString() 因为我需要在推送它们之前操作字符串:

xmls 的大小可以达到 3 mb,我注意到我被分成了 ~44 个块。

基于给定的问题,我对 v8 堆和系统中的内存消耗有疑问:

1) 我知道缓冲区存储在 v8 内存之外。当我在 _transform 函数中执行 chunk.toString() 时,它是否会在 v8 内存中创建一个 javascript 字符串对象?如果是,我假设它会在丢失所有引用后被垃圾收集。

2)由于缓冲区是系统内存的一部分,我相信它们不会被垃圾收集,那么什么时候释放内存?

3)当我将每个块转换为字符串时,应用程序是转换流的一个很好的用例吗?

编辑:可能是我没有清楚地解释自己。无论如何,在将其转换为 json 之前,我一直在尝试从 xml 标记中删除命名空间。这是我最终得到的代码。利用 javasctipt 中的记忆。如果你们找到更好或更高效的内存方式,请告诉我。我们正在使用 actionhero.js 框架

0 投票
3 回答
1354 浏览

node.js - 如何在 node.js 中旋转我正在写入的文件?

我正在将记录写入 node.js 中的文件,我需要每隔这么多行或在一段时间后用一个新文件轮换文件,但我不能在此过程中丢失任何行。如果我尝试使用 fs.createWriteStream 创建一个新流,我最终会通过覆盖旧流而丢失行。任何建议将不胜感激。

0 投票
1 回答
442 浏览

coffeescript - 如何使 gulp.dest 动态化

我正在学习使用 gulp。我采用了一个示例场景,在该场景中,我尝试根据名称复制文件,如果它是奇怪的,则将其移动到奇数文件夹,否则将其移动到偶数。但是有些目标文件夹搞砸了。这是文件夹结构和代码。

它将偶数文件名复制到奇数文件夹。这是关于被记住的目标文件夹(我认为关闭)

0 投票
1 回答
62 浏览

node.js - Node.js 连接文件

我正在尝试连接多个文件并使用节点 jscreateWriteStreamcreateReadStream. 我有一个小错误,我想在其内容之前打印出文件名。但是,文件名总是打印在输出文件的顶部。请查看我的结果输出,如果您有任何想法,请帮助!

谢谢!

测试.js

我目前的结果:

我的预期结果: