问题标签 [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.
javascript - 故障排除错误:在 nodejs 流冒险教程中连接 ECONNREFUSED
我一直在学习 learnyoujs 和 stream-adventure 教程:
https://github.com/substack/stream-adventure
https://github.com/rvagg/learnyounode#learn-you-the-nodejs-for-much-win
我已经完成了第一组,大部分时间都完成了第二组,但我不断收到一个奇怪的错误……通常我可以让它消失。
这是命令/错误:
DEV/javascript/streamAdventure » 流式冒险运行 httpserver.js
这将启动但不会终止节点的进程,所以我 ps aux | grep node 然后找到该进程并杀死它。
这是教程中的“工作”代码:
如果我只是运行 nod httpserver.js 然后 curl 它,它工作正常......那么有没有人知道是什么导致了这个错误?
node.js - nodejs stdin可读事件未触发
该readable
事件未在process.stdin
测试.js
然后,当我这样做node test.js
并开始在控制台中输入时,readable
根本不会触发该事件。
请告诉我如何将readable
侦听器附加到 process.stdin 流。
javascript - 将行添加到文件时,如何使用单个文件描述符或流检测和读取它们?
背景 -
我正在尝试使用 node.js 和 fs 模块来完成监视文件的最终目标,并检测已附加到它的行。
当前实施 -
我目前正在使用fs.watch持续监视文件的更改,并在触发监视后使用fs.readFile读取文件。
缺点 -
这种实现的缺点是,以这种方式导出附加行的计算成本高且速度慢,特别是因为尽管我只对附加行感兴趣,但它需要读取整个文件内容。
理想的解决方案 -
我想改用fs.createReadStream以某种方式读取文件直到最后,将文件描述符留在最后,并在附加文件后再次开始读取。
我找到了两种读取流缓冲区内容的方法,但是在readable.read()和readable.on('data',...)这两种实现中,似乎一旦存在流就结束了尽管流没有关闭,但没有更多数据要读取。我不确定如何继续使用已结束的流,因为readable.resume()似乎没有做任何事情。
我的问题 -
如何以修改文件后触发的方式从文件中读取附加行?我的理想解决方案是否正确?
感谢您的时间和帮助!
node.js - 可写流完成了吗?
我正在尝试在 Node.js 中实现可写流。我正在阅读 SubStack 的优秀流手册。我想知道当读取流停止写入时(当它调用push(null)时)是否有办法在可写流中查找?可写流的实现是否可以订阅完成事件?
javascript - Node.js Piping the same readable stream into multiple (writable) targets
I need to run two commands in series that need to read data from the same stream. After piping a stream into another the buffer is emptied so i can't read data from that stream again so this doesn't work:
Request complains about this
and changing the inputStream to fs.createWriteStream
yields the same issue of course.
I don't want to write into a file but reuse in some way the stream that request produces (or any other for that matter).
Is there a way to reuse a readable stream once it finishes piping? What would be the best way to accomplish something like the above example?
node.js - 使用 websocket 节点将命令流式传输到 python shell
我试图构建一个通过终端命令行访问 python shell 的 Web 应用程序,但我在处理流时遇到了一些困难。
我有一个 node.js/websocket 服务器,它将传入命令发送到 python 进程的标准输入(下面的代码),这似乎工作正常,但由于某种原因,每个传入命令都会发送多个响应消息。例如,如果'hello world'
发送命令,则将多个'hello world'
s 发送回客户端(以及>>>
通过 stderr 发送的多个)。我很困惑......我已经确保只有一个命令来自客户端,那么为什么我会收到很多响应?
node.js - 如何关闭在 node.js 中没有更多数据要发送的流?
我正在使用 node.js 并通过打开 /dev/tty 文件从串行端口读取输入,我发送命令并读取命令的结果,并且我想在读取并解析所有数据后关闭流. 我知道我已经完成了数据标记的读取数据。我发现一旦我关闭了流,我的程序就不会终止。
下面是我所看到的示例,但使用 /dev/random 缓慢生成数据(假设您的系统没有做太多)。我发现一旦设备在流关闭后生成数据,该过程将终止。
更新:1
我又回到了这个问题上,并且有另一个示例,这个示例只使用了一个 pty,并且很容易在节点 repl 中复制。在 2 个终端上登录并使用您未在以下调用中运行节点的终端的 pty 来调用 createReadStream。
此时节点只会挂起而不退出。这是10.28。
node.js - node.js http.IncomingMessage 不会触发“关闭”事件
http.IncomingMessage 何时触发其“关闭”事件?
根据文档,它应该在底层连接关闭时发生。但是,以下示例代码永远不会调用它(我确保它不是由保持活动引起的):
我正在使用 node.js v0.10.22。
javascript - 从nodejs有效地序列化(和读取)int数组
我正在考虑在 nodejs 中构建一个应用程序,该应用程序需要流式传输包含整数数组的大型(> GB)文件。至关重要的是,数组需要以最佳方式进行序列化,因此不是基于 ascii,理想情况下使用 8 位来表示较小的整数(这将是绝大多数数据),但仍然能够表示较大的数字。
这个问题可能不仅仅是关于 nodejs,但是如何在 nodejs 中解决这个问题?是否有现成的解决方案可用于从磁盘使用自定义字节编码流式传输文件?或者更好的整数数组?
理想情况下,流的每个部分的解码应该是磁盘绑定而不是 CPU 绑定,即使使用 ssd。
javascript - 节点 fs.readstream() 输出而不是可读数据
我正在 Node Js 中读取一个大型 XML 文件(~1.5gb)。我正在尝试流式传输它并使用大块数据做一些事情,但我发现很难理解文档。
我目前的简单代码是:
控制台给出了一堆buffer
像这样的十六进制(我认为)代码:
我也试过:
(所以我可以读取将 XML 流解析为 JSON)但我undefined
在控制台中得到结果。
我如何实际将这些数据转换为有用的东西?