我的问题之前的一些背景:
我拥有的每条路由都受到中间件的保护,确认请求已通过身份验证。最重要的是,我有不同级别的权限(即,is_regular_user,is_account_approved,is_team_admin,is_firm_admin),我也使用中间件。
如果其中一个中间件检查失败,我将重定向到通用400错误处理程序。但是,我想将一些信息传递给该错误处理程序,以便我可以向客户端返回一个自定义错误消息(因此我可以告诉他们在我的公司中联系谁以查找错误)。
我正在考虑向req.params Express对象附加一条消息(指定哪个中间件检查失败),通用错误处理程序可以检查该对象,然后用于打印自定义错误消息。这种方法有意义吗?如果没有,最好的方法是什么?
答案 0 :(得分:0)
它可以是这样的
// handle
authMiddleware = (req, res, next) => {
const error = doAuthLogic(req);
if(error){
res.send({ error: e});
return;
}
next(req, res);
}
app.get('/api', authMiddleware, myController );
并在 doAuthLogic 中,您可以传递所有必需的信息