2017-05-23 7 views
0

私はnodejs child_processからmongodumpコマンドを実行しています。ノードchild_processは、mogodumpのstderrに有効な出力を与えます。

Iはexecspawn両方を試みたが、mongodumpによって印刷進行はmongodumpがそれとして実行、クラッシュ、または任意のエラーを投げていない代わりstdout

var exec = require('child_process').exec, 
    ls = exec('mongodump --gzip --archive="/home/test-machine/test.archive" --db myDB'); 

ls.stdout.on('data', function (data) { 
    console.log('stdout: ' + data.toString()); 
}); 

ls.stderr.on('data', function (data) { 
    console.log('stderr: ' + data.toString()); 
}); 

ls.on('exit', function (code) { 
    console.log('child process exited with code ' + code.toString()); 
}); 

stderrdataイベントに当たっていますすべきだ。それはあなたが手動でエラーメッセージをフィルタリングする必要があるため少し難しくエラーの出力を解析なりますが、しかし、どういうわけか、とても珍しいことではありません

答えて

0

mongodumpstderrにログメッセージを書き込み、標準エラー出力として出力し、処理しているnodejs。

+0

彼らはそれを何らかの理由でしていますか?あなたはそれほど珍しいことではないと言いました、どうして私にそれを教えてもらえますか? –

+1

'mongodump'には' stdout'にダンプするオプションがあるので、ログメッセージはそれを妨害し、 'stderr'を使用します。 'stdout'に出力を書き込む(あるいはそうするオプションがある)ツールの多くは、その慣習を使用しています。 – robertklep

関連する問題