节点侦听一个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自述文件中的示例直接适用于您的情况)。