当前位置: 首页 > 工具软件 > js-validator > 使用案例 >

Node.js进阶 --- Express-validator表单验证器

谢俊力
2023-12-01

Node.js进阶 — Express-validator表单验证器

TIP

源码地址:https://github.com/express-validator/express-validator

使用 express-validator 可以简化 POST 请求的参数验证,使用方法如下:

安装:

npm i -S express-validator

验证:

const { body, validationResult } = require('express-validator')
const boom = require('boom')

router.post(
  '/login',
  [
    body('username').isString().withMessage('username类型不正确'),
    body('password').isString().withMessage('password类型不正确')
  ],
  function(req, res, next) {
    const err = validationResult(req)
    if (!err.isEmpty()) {
      const [{ msg }] = err.errors
      next(boom.badRequest(msg))
    } else {
      const username = req.body.username
      const password = md5(`${req.body.password}${PWD_SALT}`)

      login(username, password).then(user => {
        if (!user || user.length === 0) {
          new Result('登录失败').fail(res)
        } else {
          new Result('登录成功').success(res)
        }
      })
    }
  })

express-validator 使用技巧:

  • router.post 方法中使用 body 方法判断参数类型,并指定出错时的提示信息
  • 使用 const err = validationResult(req) 获取错误信息,err.errors 是一个数组,包含所有错误信息,如果 err.errors 为空则表示校验成功,没有参数错误
  • 如果发现错误我们可以使用 next(boom.badRequest(msg)) 抛出异常,交给我们自定义的异常处理方法进行处理
 类似资料: