将流对象转换为字符串

时间:2016-02-16 21:07:09

标签: node.js stream redis

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

TypeError: Converting circular structure to JSON

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

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

但访问流写入功能时出现错误 - o.write is not a function

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

处理流可能很复杂。对于stream -> string,我建议使用此库:https://www.npmjs.com/package/raw-body