我有一个无穷无尽的命令行流——即来自我的 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);
});
或者只使用 raw 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)。