JSONStream的基本testing不起作用

我正在查看node.js中的JSONStream,并且正在尝试使用下面的小应用来处理它:

var JSONStream = require('JSONStream'); var Stream = require('stream'); var s = new Stream(); s.pipe = function(dest) { dest.write('{"foo":1}'); return dest; }; var parser = JSONStream.parse(/foo/); s.pipe(parser).pipe(process.stdout); 

不幸的是,当在命令行上运行时,这不会向控制台写入任何内容。 我究竟做错了什么?

如果你重写你的代码,它会工作:

 var JSONStream = require('JSONStream'); var Stream = require('stream'); var s = new Stream(); s.pipe = function(dest) { dest.write('{"foo":1}'); return dest; }; var parser = JSONStream.parse(); parser.on('data', function(obj) { console.log('obj', obj); }); s.pipe(parser); 

您无法将JSONStream.parse()的输出JSONStream.parse()process.stdoutJSONStream输出对象,而process.stdout只接受string(可能是Buffers):

 > process.stdout.write({ foo : 1 }); TypeError: invalid data at WriteStream.Socket.write (net.js:612:11) ...