我正在尝试使用一个中间件,它将在错误和非错误链中建立一个变量。这怎么可能?在回调中自动传递错误会使其跳过正常的中间件链,反之亦然,如果我删除错误,它会跳过错误的中间件链......
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();
}
}
答案 0 :(得分:0)
错误中间件,具有签名(err, req, res, next)
的错误中间件应该是您的路由的最终目的地。如果要添加到req
对象,则需要在抛出error
或调用next(new Error())
之前完成此操作。