我看了很多帖子,但我不明白如何处理该错误
我有这些中间件
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
app.use(function (err, req, res, next) {
res.render('error', {
message: err.message,
error: err
});
});
当我收到 404 页面时,这些中间件会进行管理
在我的 route ,我有例如:
app.route('/post/delete/:id_post')
.get(function (req, res,next) {
if(req.params.id_post !=req.decoded._id){
var err = new Error('Error 500, you don\t have access');
next(err);
}
Post.find({_id:req.params.id_post},function(err, post) {
if (err) throw err;
res.redirect('/');
});
});
我如何管理 if(req.params.id_post !=req.decoded._id)
内部的错误以及在 Db 上查询后的错误?
最佳答案
您可以使用中间件来捕获路由上的错误,例如
app.get('/post/delete/:id_post',function(req,res,next){
if(req.params.id_post !=req.decoded._id){
var err = new Error('Error 500, you don\t have access');
return next(err);
}
Post.find({_id:req.params.id_post},function(err, post) {
if (err) return next(err);
res.redirect('/');
});
},function(err,req,res,next){
//you can handle all your errors thrown from ahead middleware
})
关于javascript - Express 4 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247265/