process.stderr.on('data') 和 process.on('error') 有什么区别?

tem*_*ame 2 error-handling stderr node.js

我正在节点应用程序中为子进程设置错误处理,我想知道这两个选项:

    childProcess.on('error', err => {
        // omitted
    });

    // do we need both this and the preceding handler?
    childProcess.stderr.on('data', data => {
        // omitted
    });
Run Code Online (Sandbox Code Playgroud)

有什么不同?两者都需要吗?

Mat*_*att 5

当节点在启动、停止或管理子进程时出现问题时,会触发子进程error事件。

stderr是子进程运行后的输出通道之一。该data事件在流程的正常操作中可以多次触发,并且通常可以包含有关流程错误情况的重要信息。您通常会stdout以与 类似的方式进行处理stderr

事件exit code对于子进程也很重要。通常,进程会退出并带有非0返回代码,以表明发生了问题。