Node.js 在Express中侦听res.sendFile错误

Node.js 在Express中侦听res.sendFile错误,node.js,express,Node.js,Express,我有这个简单的代码 router.post('/foo', function(req,res,next){ try{ var file = path.resolve(folder, runId, 'temp.html'); res.sendFile(file); } catch(err{ //not reached next(err); } }); 我试图发送的文件不存在,这可能是一个很好的异常。但是,res.se

我有这个简单的代码

router.post('/foo', function(req,res,next){
    try{
      var file = path.resolve(folder, runId, 'temp.html');
      res.sendFile(file);
    }
    catch(err{
      //not reached
      next(err);
    }
});
我试图发送的文件不存在,这可能是一个很好的异常。但是,res.sendFile不会引发同步错误

我似乎无法通过这种方式侦听错误:

res.sendFile(file).on('error',function(){})
/


那么我们如何处理res.sendFile抛出的错误呢?

试试这个,参考文档


请详细查看文档:

根据文档,您的代码应该如下所示:

router.post('/foo',函数(req,res,next){
var file=path.resolve(文件夹,runId,'temp.html');
res.sendFile(文件、选项、函数(err){
如果(错误){
res.status(err.status).end()
}
});
});
希望这有帮助

var options = {
    root: __dirname + '/public/',
    dotfiles: 'deny'
  };

  var fileName = path.resolve(folder, runId, 'temp.html');
  res.sendFile(fileName, options, function (err) {
    if (err) {
      console.log(err);
      res.status(err.status).end();
    }
    else {
      console.log('Sent:', fileName);
    }
  });