Express Validator 使用 5.3.0 中间件功能

代码狂
const app = require('express')();

const session = require('express-session');

const {
    check,
    validationResult
} = require('express-validator/check');

app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true,
    cookie: { secure: false }
}))
app.get("/test", [
    // username must be an email
    check('username').not().isEmpty(),`//.withCustomMessage() based on the content of req.session`
    // password must be at least 5 chars long
    check('password').not().isEmpty()
],(req,res)=>{
    console.log("req.session", req.session);
    // Finds the validation errors in this request and wraps them in an object with handy functions
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
        return res.status(422).json({ errors: errors.array() });
    }
    //console.log("req.session",req.session);
});

app.get("/",(req,res,next)=>{
  req.session.message  = "beoulo ";
 // console.log(req.session);
  res.status(200).json({
      "status" :"session set"
  });
});

app.listen(3000,()=>{
    console.log("Listening on port 3000!!!");
});

直接作为中间件传递 Check 是唯一使用它的方法吗?我们是否仍然可以在单独的中间件函数中使用 req.checkbody(field,errormessage) 格式或等效的东西,导致必须从会话中获取错误消息

我想从 req.session 访问一个变量并基于它生成自定义错误消息

以前的实现工作正常,因为它使用了 req.checkBody()

有了新的变化,我应该怎么做来处理这种情况。

罗伯特克莱普

您可以在自己的处理程序中重写默认错误消息。

假设您的错误消息存储在 中req.session.errors,并且这是一个将特定验证映射到特定错误消息的对象。

例如:

// req.session.errors =
{
  "USERNAME_EMPTY" : "The username cannot be empty",
  "PASSWORD_EMPTY" : "The password cannot be empty",
}

接下来,您将为每个验证提供与上述对象的键匹配的自定义消息:

check('username').not().isEmpty().withMessage('USERNAME_EMPTY')
check('password').not().isEmpty().withMessage('PASSWORD_EMPTY')

最后,在您的处理程序中,您执行从验证错误到错误消息值的查找:

if (! errors.isEmpty()) {
  const list = errors.array();

  list.forEach(error => {
    error.msg = req.session.errors[error.msg] || error.msg;
  });

  return res.status(422).json({ errors: list });
}

或者只是依赖于旧版本,express-validator以便您可以继续使用旧版 API。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Koa中使用Express中间件

来自分类Dev

Express / Connect:是否可以多次使用静态中间件?

来自分类Dev

使用express.js和locomotive.js在中间件中添加api令牌

来自分类Dev

结合使用手写笔中间件和Express 4,SyntaxError

来自分类Dev

使用Stylus和CoffeeScript中间件是否会降低Node.js Express应用的速度?

来自分类Dev

发送带有Express的响应后,是否可以使用某种“中间件”?

来自分类Dev

将中间件与express()。use一起使用express.static

来自分类Dev

如何使用Express的静态中间件正确加载图像?

来自分类Dev

是否可以在不使用中间件功能的情况下增强express.js req和res变量?

来自分类Dev

如何在条件中间件中使用Node.js Express-session?

来自分类Dev

如何检查正在使用的Express.js中间件集?

来自分类Dev

如何检查正在使用的Express.js中间件集?

来自分类Dev

使用Express中间件按请求配置模块?

来自分类Dev

使用Express.Router()与特定的中间件进行快速路由

来自分类Dev

Express:将中间件抽象为应用程序使用

来自分类Dev

Express.js 4-在静态文件之前使用中间件进行身份验证

来自分类Dev

如何解决Express Validator中间件错误?

来自分类Dev

如何使用express-validator中的checkSchema中间件验证嵌套的POST主体有效负载?

来自分类Dev

Jest Express使用参数测试中间件

来自分类Dev

expressjs-使用中间件功能

来自分类Dev

如何使用Express的静态中间件正确加载图像?

来自分类Dev

是否可以在不使用中间件功能的情况下增强express.js的req和res变量?

来自分类Dev

如何使用ASP-5 / MVC-6 / Identity 3为自定义Asp.Net身份存储提供程序注册中间件

来自分类Dev

Express-不使用响应中间件

来自分类Dev

使用Express中间件进行每个请求的模块配置?

来自分类Dev

Express Router.use在中间件中的使用

来自分类Dev

使用中间件在 express 中访问 get 请求

来自分类Dev

Express Session 使用导致需要一个中间件功能

来自分类Dev

单元测试 express-validator 中间件

Related 相关文章

  1. 1

    在Koa中使用Express中间件

  2. 2

    Express / Connect:是否可以多次使用静态中间件?

  3. 3

    使用express.js和locomotive.js在中间件中添加api令牌

  4. 4

    结合使用手写笔中间件和Express 4,SyntaxError

  5. 5

    使用Stylus和CoffeeScript中间件是否会降低Node.js Express应用的速度?

  6. 6

    发送带有Express的响应后,是否可以使用某种“中间件”?

  7. 7

    将中间件与express()。use一起使用express.static

  8. 8

    如何使用Express的静态中间件正确加载图像?

  9. 9

    是否可以在不使用中间件功能的情况下增强express.js req和res变量?

  10. 10

    如何在条件中间件中使用Node.js Express-session?

  11. 11

    如何检查正在使用的Express.js中间件集?

  12. 12

    如何检查正在使用的Express.js中间件集?

  13. 13

    使用Express中间件按请求配置模块?

  14. 14

    使用Express.Router()与特定的中间件进行快速路由

  15. 15

    Express:将中间件抽象为应用程序使用

  16. 16

    Express.js 4-在静态文件之前使用中间件进行身份验证

  17. 17

    如何解决Express Validator中间件错误?

  18. 18

    如何使用express-validator中的checkSchema中间件验证嵌套的POST主体有效负载?

  19. 19

    Jest Express使用参数测试中间件

  20. 20

    expressjs-使用中间件功能

  21. 21

    如何使用Express的静态中间件正确加载图像?

  22. 22

    是否可以在不使用中间件功能的情况下增强express.js的req和res变量?

  23. 23

    如何使用ASP-5 / MVC-6 / Identity 3为自定义Asp.Net身份存储提供程序注册中间件

  24. 24

    Express-不使用响应中间件

  25. 25

    使用Express中间件进行每个请求的模块配置?

  26. 26

    Express Router.use在中间件中的使用

  27. 27

    使用中间件在 express 中访问 get 请求

  28. 28

    Express Session 使用导致需要一个中间件功能

  29. 29

    单元测试 express-validator 中间件

热门标签

归档