在中间件中添加req.params对象以进行错误处理

时间:2018-05-16 16:42:00

标签: node.js express

我的问题之前的一些背景:

  1. 我目前正在Node,Express,MongoDb + Mongoose
  2. 中构建服务器
  3. 我正在使用PassportJS进行身份验证
  4. 我拥有的每条路由都受到中间件的保护,确认请求已通过身份验证。最重要的是,我有不同级别的权限(即,is_regular_user,is_account_approved,is_team_admin,is_firm_admin),我也使用中间件。

    如果其中一个中间件检查失败,我将重定向到通用400错误处理程序。但是,我想将一些信息传递给该错误处理程序,以便我可以向客户端返回一个自定义错误消息(因此我可以告诉他们在我的公司中联系谁以查找错误)。

    我正在考虑向req.params Express对象附加一条消息(指定哪个中间件检查失败),通用错误处理程序可以检查该对象,然后用于打印自定义错误消息。这种方法有意义吗?如果没有,最好的方法是什么?

1 个答案:

答案 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 中,您可以传递所有必需的信息