node child_process在stderr中为mongodump提供有效输出

时间:2017-05-23 07:37:49

标签: node.js child-process mongodump

我正在从nodejs mongodump执行child_process命令。

我已经尝试了execspawn,但mongodump打印的进度达到了data stderr事件,而不是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

1 个答案:

答案 0 :(得分:0)

mongodump将日志消息写入stderr,这并不常见,但由于您需要手动过滤掉错误消息,因此它会使输出中的错误更难解析。 / p>