从衍生的Node.js进程中捕获错误

时间:2017-06-29 18:08:39

标签: javascript node.js

以下是未触发子进程error的示例:

const spawn = require('child_process').spawn;
const childProcess = spawn('tar', ['--wrong-option'], { stdio: 'inherit' });

childProcess.on('error', err => {
    console.error('err: ', err);
});

为什么会这样?如何从生成的进程中捕获错误(特别是错误代码)?

2 个答案:

答案 0 :(得分:4)

error事件仅在产生孩子本身导致问题时生成;例如,当可执行文件不存在时。

捕捉错误"抛出"通过子进程,您应该监听exit个事件并检查codesignal个参数:

childProcess.on('exit', (code, signal) => {
  if (code) {
    console.error('Child exited with code', code)
  } else if (signal) {
    console.error('Child was killed with signal', signal);
  } else {
    console.log('Child exited okay');
  }
});

答案 1 :(得分:1)

另外,如果您想查看错误消息:

composer.json