我有一个无尽的命令行流 - 即来自我的heroku应用程序的日志 - 并且想要按行解析到node.js。
我尝试过各种方法,比如readline界面(什么都不做):
var command = 'heroku logs --app myapp --tail';
var heroku = Npm.require('child_process').exec(command);
var readline = Npm.require('readline');
var rl = readline.createInterface({
input: heroku.stdin,
output: process.stdout
});
rl.on('line', function(log) {
console.log(log);
});
或者只使用原始exec,它会返回一个初始缓冲区,但不会从进程中连续读取:
var command = 'heroku logs --app myapp --tail';
var heroku = Npm.require('child_process').exec(command);
heroku.stdout.setEncoding('utf8');
heroku.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
我没有让它与spawn
一起工作 - 即使我认为它可能是正确的。
什么是更好的方法(我正在使用流星,因此增加了Npm)。