node.js - 将流对象转换为字符串

标签 node.js stream redis

我需要将流对象存储为字符串, 我尝试使用 JSON.stringify(stream) 但出现以下错误:

TypeError: Converting circular structure to JSON

所以我尝试像这样使用“circular-json”包:

var o = CircularJSON.parse(CircularJSON.stringify(stream))

但是当访问流写入函数时我得到一个错误 - o.write 不是函数

如何将流对象存储为字符串,并在以后解析它们 到原始对象?

最佳答案

流不包含原始数据作为对象的一部分。相反,它们将数据作为您可以收听的 'data' 事件的一部分发出。订阅流的 .on 事件,当它发出数据时,您可以将其附加到字符串并获取所有数据。

'end' 事件中,您已完成读取所有数据,因此您可以在 'end' 事件回调中对数据执行某些操作。

let data = '';
stream.on('data', chunk => data += chunk);
stream.on('end', doSomethingWithData);

关于node.js - 将流对象转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442985/

相关文章:

node.js - iisnode 在 Windows 8 上找不到我的 32 位 Node.js 安装

node.js - 是否可以递归使用 MongooseJS 的 query#populate 方法?

stream - 使用自定义分块函数分块流

Linux - 调试程序设计 - 从多个程序打印 STDOUT 流

redis - redis pub/sub 模型是否需要与 redis 的持久连接?

redis - redis是否支持server和client之间的UDP

html - 与 html2canvas 和 nodejs 类似的解决方案

node.js - 事件驱动与非事件驱动 Web 服务器中的线程

swift - 流式套接字服务器端 swift

ruby - 使用 Ruby 的 Redis 客户端