节点侦听一个shell可执行的输出

我有这个小任务,我有一个我运行的可执行文件,它给了我一个JSONstream的stream程。

我想要一个节点脚本,可以监听该可执行文件并处理输出。

可执行文件我简单地通过terminal运行:

./generator 

我这样做后,它会开始运行和显示json文件,直到我手动停止它。

 var spawn = require('child_process').spawn; var content = ''; var child = spawn('./generator'); child.stdout.on('data', function(data) { content += data; }); child.on('close', function() { console.log(content); }); 

这里是一个工作代码,你可以运行它来产生生成器脚本作为一个孩子,并收到所有的标准输出。

希望这可以帮助。

看看包ndjson 。 你将把你的subprocess的标准输出到ndjson.parse() ,这将返回一个可读的stream。 您将监听可读stream上的data事件,并获取已经为您parsing的对象。 (ndjson自述文件中的示例直接适用于您的情况)。