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);
}
});