在我提出问题之前的一些背景:
我所拥有的每一条路由都由一个中间件来保护,确认请求是经过身份验证的。最重要的是,我有不同级别的许可(即,is_regular_user、is_account_approved、is_team_admin、is_firm_admin),我也在使用中间件。
如果其中一个中间件检查失败,我将重定向到一个通用的400错误处理程序。但是,我想将一些信息传递给这个错误处理程序,这样我就可以向客户端返回一个自定义错误消息(这样我就可以告诉他们在我的公司中有什么错误需要与谁联系)。
我正在考虑在req.params Express对象中附加一条消息(指定哪个中间件检查失败),泛型错误处理程序可以检查该消息,然后使用该消息打印自定义错误消息。这种方法有意义吗?如果不这样做,最好的办法是什么?
发布于 2018-05-16 16:54:43
可能是这样的
// 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中,可以传递所有所需的信息。
https://stackoverflow.com/questions/50376071
复制相似问题