中间件由错误和正常链共享

时间:2013-12-23 07:51:10

标签: javascript node.js express

我正在尝试使用一个中间件,它将在错误和非错误链中建立一个变量。这怎么可能?在回调中自动传递错误会使其跳过正常的中间件链,反之亦然,如果我删除错误,它会跳过错误的中间件链......

middleware.redirect = function(){
    return function (err, req, res, next){
        if(req.form.redirect){
            req.form_redirect = url.parse(req.form.redirect);
        }else{
            req.form_redirect = url.parse(config.domain);
            req.form_redirect.pathname = "thanks";
        }
        if(err) return next(err);
        return next();
    }
}

1 个答案:

答案 0 :(得分:0)

错误中间件,具有签名(err, req, res, next)的错误中间件应该是您的路由的最终目的地。如果要添加到req对象,则需要在抛出error或调用next(new Error())之前完成此操作。