javascript - Express 4 中的错误处理

标签 javascript node.js express error-handling

我看了很多帖子,但我不明白如何处理该错误

我有这些中间件

// 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/

相关文章:

node.js - Express-Mongoose Exp的请求-响应周期/错误处理

javascript - 类型错误:无法读取 null 的属性 '0'

node.js - 使用 Node 查找mongodb中的最大字段值

javascript - Mongoose、express 返回空数组

Javascript Tab 键按下并按住 Tab 时,它会无限闪烁

javascript - 使用nodeJS将文件添加到同一文件夹

Node.js Express.js : Getting the body of a sent response

javascript - 使用 Maven 和 Jasmine 处理多个 javascript 文件

javascript - JavaScript指令的含义

javascript - 无法在表 td 中使用 Bootstrap Toggle?