0

無限のコマンド ライン ストリーム (つまり、heroku アプリからのログ) があり、それを 1 行ずつ解析して 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が追加されました)。

4

0 に答える 0