验证节点的中间件

时间:2019-05-08 06:46:45

标签: node.js express

在我的节点应用程序中,我具有以下快速路由。

router.post('/register', asyncMiddleware(async (req, res) => {
   const { error } = validateUser(req.body); 
   if (error) 
      return res.status(400).send(error.details[0].message);

   const { token, user } = await userService.createNewUser(req.body);
   res.header('x-authorization-token', token).send(_.pick(user, ['_id', 'name', 'email']));
}));

处理这样的验证结果是否是一个好习惯?还是应该将其放入中间件并使用?如果是这样,我如何将其放入中间件并使用它?

1 个答案:

答案 0 :(得分:0)

  

处理这样的验证结果是一种好习惯吗?

答案是取决于。

如果这是一个小项目,或者只有几个API,或者您只需要对此路线进行验证,那么您可能可以进行这样的验证。

但是,在较大的项目中,您绝对应该有一个单独的验证中间件。
我个人喜欢将express-validationJoi一起使用进行验证。

Joi非常适合创建灵活而强大的模式来验证传入的请求。快速验证会照顾到适当的身份和身体。

如果要查看示例,请查看我的express-api-structure