节点stream:远程stream正在返回JSON,但('data')显示缓冲区

我刚刚开始使用节点stream

我的图书馆的演示代码使用:

stream.pipe(process.stdout, {end: true}); 

哪些工作正常,将JSON块打印到标准输出。

我想用:

 stream.on('data', function(chunk) { console.log(chunk) } 

但是我得到一个二进制缓冲区

 chunk! <Buffer 7b 22 73 74 72 65 61 6d 22 3a 22 20 2d 2d 2d 5c 75 30 30 33 65 20 35 35 32 38 38 36 39 62 30 30 33 37 5c 6e 22 7d> 

有没有一种方法,我可以使用('数据'),看到JSON?

       

网上收集的解决方案 "节点stream:远程stream正在返回JSON,但('data')显示缓冲区"

我相信你应该在你的stream上运行stream.setEncoding('utf8') ,所以node.js核心会自动解码utf8。

你可能应该像前面提到的那样使用chunk.toString('utf8')因为它可以在边界上乱码unicode字符,除非你确信数据将在一个块中。

使用chunck.toString ('utf8') 。 另外, Buffer类还有其他编码!