0

我有一个无穷无尽的命令行流——即来自我的 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)。

4

0 回答 0