首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速验证器在中间件或路由器回调中的输入清理?

快速验证器在中间件或路由器回调中的输入清理?
EN

Stack Overflow用户
提问于 2022-05-08 09:49:22
回答 1查看 279关注 0票数 0

我试图通过使用快速验证程序包来提高我的快速应用程序的安全性,我发现我可以用两种不同的方式来使用它。

中间件中的第一个:

代码语言:javascript
复制
const {check}=require("express-validator");
app.post(
  "/random-post",
  [
    check("email").isEmail(),
  ],
  (req, res) => {
    //some code
  })

第二,路由器回叫的内部:

代码语言:javascript
复制
app.post("/random-post",(req,res,next)=>{
   check(req.body.email).isEmail()
})

这两种药物中哪一种最常用,或者我应该两者兼用?

EN

回答 1

Stack Overflow用户

发布于 2022-10-09 10:02:38

我认为这里的最佳实践是在到达控制器之前进行验证和sanitazion。在同一逻辑块中,还可以检查是否存在验证错误并返回错误。这样就永远不会到达控制器,因此您的控制器中的代码永远不会执行。我在下面更新了您的示例:

代码语言:javascript
复制
const {check} = require('express-validator');

app.post(
  '/random-post', [
    check('email').isEmail(),
    (req, res, next) => {
      const errors = validationResult(req);
      if (!errors.isEmpty()) {
        return res.status(422).json({
          errors: errors.array()
        });
      }
      next();
    }
  ],
  (req, res) => {
    //some code in your controller
  }
);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72159825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档