2017-05-23 13 views
0

나는 에서 mongodump 명령을 실행 중입니다.노드 child_process는 몽더 덤프에 대해 stderr에서 유효한 결과를 제공합니다.

내가 모두 execspawn 시도하지만, 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()); 
}); 

mongodump가 충돌 또는 오류를 던지고되지 않는 대신 stderrdata 이벤트를 치고, 그 그것으로 실행 할까요. 당신이 수동으로 오류 메시지를 필터링해야하기 때문에 조금 더 열심히 오류 출력을 분석하게하지만 어쨌든, 매우 드문 일이 아니다

답변

0

mongodumpstderr 로그 메시지를 기록 표준 에러로 출력을 치료한다 nodejs.

+0

그 이유는 무엇입니까? 당신은 그 일이 그렇게 드문 일이 아니라고 말했습니다. 왜 그런지 말해 줄 수 있습니까? –

+1

'mongodump'는'stdout'에 덤프 할 수있는 옵션을 가지고 있습니다. 그래서 로그 메시지가 그것을 방해 할 것이므로'stderr'를 사용하십시오. 'stdout'에 결과물을 쓰거나 (그렇게 할 수있는 옵션이있는) 많은 도구는 그 규칙을 사용합니다. – robertklep