2015-10-20 3 views
0

Я видел много пост, но я не понимаю, как я могу обработать ошибкуHandle Ошибка Экспресс 4

У меня есть эти межплатформенное

// 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 страница

внутри моих маршрутов я есть, например:

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?

ответ

1

Вы можете использовать промежуточное программное обеспечение, чтобы поймать ошибку на маршрутах, как

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 
    }) 
Смежные вопросы