Error handling 捕获express不工作中的所有错误
我想为所有未单独处理的错误提供一个error.ejs文件 当我从mongoose user.save()获得重复的密钥错误时,此代码不会执行任何操作 app.jsError handling 捕获express不工作中的所有错误,error-handling,express,Error Handling,Express,我想为所有未单独处理的错误提供一个error.ejs文件 当我从mongoose user.save()获得重复的密钥错误时,此代码不会执行任何操作 app.js app.use(function(err, req, res, next){ res.status(500); res.render('error', { error: "Woops, we encountered an error..." }); }); routes/index.js user.save(functio
app.use(function(err, req, res, next){
res.status(500);
res.render('error', { error: "Woops, we encountered an error..." });
});
routes/index.js
user.save(function(err){
if ( err ) throw err;
});
下面的示例给出了以下错误:捕获异常:[ReferenceError:next未定义]
user.save(function(err){
if ( err ) next(err);
});
你的片段
user.save(function(err){
if ( err ) next(err);
});
大概是在一个有函数(req,res)的路由内
您需要做的是对该函数进行“下一步”
function MyRoute( req, res, next ) {
user.save(function(err){
if ( err )
return next(err);
// carry on here doing whatever
});
}
app.get('/some/route', MyRoute);
不要扔它们
next(err)
我需要在next(err)下返回吗?当然,或者您可以执行if/elsenext(err)告诉我next()不存在。因为您没有将user.save
放在中间件中。当然,next
没有定义。。。