Ich führe mongodump
Befehl von Nodejs child_process
.Knoten Child_process gibt gültige Ausgabe in stderr für Mongodump
habe ich versucht, sowohl exec
und spawn
, aber der Fortschritt durch mongodump
gedruckt wird, um die data
Falle stderr
anstelle von 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());
});
Die mongodump nicht abstürzt oder wirft einen Fehler trifft, seine, wie es die Ausführung sollte. Aber irgendwie NodeJS wird die Ausgabe als stderr Behandlung
warum sie das tun? Du hast gesagt, dass es nicht ungewöhnlich ist, kannst du mir bitte sagen, warum ist das so? –
'mongodump' hat eine Option, um nach' stdout' zu dumpen, also würden Protokollmeldungen dies stören, daher die Verwendung von 'stderr'. Viele Tools, die ihre Ausgabe in "stdout" schreiben (oder eine Option dafür haben), verwenden diese Konvention. – robertklep