node child_process 在 stderr 中为 mongodump 提供有效输出
node child_process gives valid output in stderr for mongodump
我正在从 nodejs child_process
执行 mongodump
命令。
我已经尝试了 exec
和 spawn
,但是 mongodump
打印的进度是命中 stderr
的 data
事件而不是 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());
});
mongodump 没有崩溃,也没有抛出任何错误,它正在正常执行。但不知何故,nodejs 将输出视为 stderr
mongodump
将日志消息写入 stderr
,这并不少见,尽管它会使解析输出的错误变得更加困难,因为您需要手动过滤掉错误消息。
我正在从 nodejs child_process
执行 mongodump
命令。
我已经尝试了 exec
和 spawn
,但是 mongodump
打印的进度是命中 stderr
的 data
事件而不是 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());
});
mongodump 没有崩溃,也没有抛出任何错误,它正在正常执行。但不知何故,nodejs 将输出视为 stderr
mongodump
将日志消息写入 stderr
,这并不少见,尽管它会使解析输出的错误变得更加困难,因为您需要手动过滤掉错误消息。