無限のコマンド ライン ストリーム (つまり、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が追加されました)。