问题标签 [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.
javascript - Nodejs - 如何创建采用 JS 对象并转换为 JSON 的转换流
我有一个可读的流,它给了我对象:
我可以将可读的管道传输到转换流中:
问题是我收到此错误:
TypeError [ERR_INVALID_ARG_TYPE]:“块”参数必须是字符串或缓冲区类型之一。在 Transform.ondata (_stream_readable.js:642:20) 在 Transform.emit (events.js:159:13) 的 WriteStream.Socket.write (net.js:705:11) 接收到类型对象
我认为正在发生的事情是在转换流中,当transform()
被调用时,第一个参数(块)必须是字符串或缓冲区。
但是,我知道我可以打电话
this.push({foo:'bar'})
在转换方法中......只有传入的数据似乎被限制为字符串或缓冲区......
我的问题分为两部分:
有没有办法创建一个可以传递对象的转换流,而不仅仅是字符串或缓冲区?
如果 1 的答案是“否”,那么在转换流中将 JS 对象转换为 JSON 的可靠方法是什么?
可能会丢失一些调用,以便它接收对象而不是字符串。
node.js - 使用转换流将 JS 对象转换为 JSON
请注意,有许多转换流可以做到这一点:
JSON -> JS
但我希望创建一个可以执行以下操作的 Node.js 转换流:
JS -> JSON
我有一个可读的流:
可读流输出对象,而不是字符串。
我需要创建一个转换流,它可以过滤其中一些对象并将对象转换为 JSON,如下所示:
但是,由于某种原因,我的转换流不能接受转换方法的对象,只有字符串和缓冲区,我该怎么办?
我尝试添加这两个选项:
不幸的是,我的转换流仍然不能接受对象,只能接受字符串/缓冲区。
node.js - 使用 socket.io-stream 检查节点 js 流的大小
我正在使用 socket.io-stream 上传文件,我想知道要限制的数据上传大小。
这是我的服务器代码:
我该怎么做?
javascript - 流和事件循环 - 数据处理程序是否总是在下一个滴答时触发?
假设我有一个可读流,如下所示:
我的问题是,onData
回调会在事件循环的下一个滴答声中触发吗?或者是否有可能onData
在事件循环的同一滴答声中调用处理程序两次?
javascript - nodejs - 请求 - 表达 - 在 post 处理程序中使用文件 readStream
我正在使用 nodejs 和 express4。我有一个表单发布方法(文件上传为base64),我将此文件保存到带有流的gridfs。
这是我的代码:
该代码在同步执行时有效,但不在请求处理中。
我读到可能在我能够发送它之前取消了流。缺少的是文件的内容。请求本身被执行。
javascript - nodejs中分配的全局变量问题
我正在尝试在节点服务器中上传文件。
我将uploadedfileName 定义为全局变量。当时我上传文件后,我试图将文件名存储到这个变量中,我想用文件名在 getResponseWithPython 函数中获取全局变量
HTML:
我将uploadedfileName 定义为全局变量
JS:
注意:我在代码中提到了注释以了解代码流程和我的要求
javascript - 未转换的数据 Node.js 转换流
我正在尝试制作一个转换流,该流从 中获取数据socket.io
,将其转换为 JSON,然后将其发送到 stdout。我完全困惑为什么数据似乎没有任何转换就直接通过了。我正在使用through2
图书馆。这是我的代码:
getStreamNames
返回一个 Promise,它解析为一个流名称数组(我正在调用外部socket.io
API),并parseString
从 API 返回一个字符串并将其转换为 JSON,以便于管理。
我正在寻找的是我的控制台在我使用解析它之后打印出字符串化的 JSON parseString
,然后使用JSON.stringify
. 实际发生的是数据直接通过流并且没有进行任何转换。
作为参考,来自 API 的数据格式很奇怪,例如
field1~field2~0x23~fieldn
所以这就是我需要这个parseString
方法的原因。
我肯定错过了什么。有任何想法吗?
编辑:
解析字符串:
谢谢
javascript - 从套接字读取前 4 个字节,然后将其余字节转发到另一个套接字
我正在研究一种反向代理。我将避免在这里解释完整的体系结构,但它要求一侧需要发送它接收数据的套接字的 ID。
一个简化的例子:
但我只想读取前 4 个字节。但是如果我在data
事件中只收到 2 个字节怎么办?或者如果我收到更多数据(例如,从其他客户端转发的数据)怎么办?
所以问题是:
如何从流中读取 N 个第一个字节,然后在没有读取字节但有任何剩余数据的情况下通过管道传输流的其余部分?