Node.js 从衍生命令输出管道时,如何返回错误?

Node.js 从衍生命令输出管道时,如何返回错误?,node.js,express,Node.js,Express,我使用express从一个派生的命令(ffmpeg,这并不重要)管道化stdout,但是如果子进程失败,我仍然会得到一个200 如果退出代码为非零,有没有办法返回500?(我想当时已经发送了标题): 结果表明,该方法正在响应上调用end。因此,解决办法是自己动手: proc.stdout.pipe(res, {end: false}); proc.on("error", err => { console.log("error from ffmpeg", err.stack);

我使用express从一个派生的命令(ffmpeg,这并不重要)管道化stdout,但是如果子进程失败,我仍然会得到一个200

如果退出代码为非零,有没有办法返回500?(我想当时已经发送了标题):

结果表明,该方法正在响应上调用end。因此,解决办法是自己动手:

proc.stdout.pipe(res, {end: false});
proc.on("error", err => {
    console.log("error from ffmpeg", err.stack);
    res.status(500).end();
}); 
proc.on("exit", code => {
    console.log("child proc exited", code);
    res.status(code === 200 ? 200 : 500).end();
});
proc.stdout.pipe(res, {end: false});
proc.on("error", err => {
    console.log("error from ffmpeg", err.stack);
    res.status(500).end();
}); 
proc.on("exit", code => {
    console.log("child proc exited", code);
    res.status(code === 200 ? 200 : 500).end();
});