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))
抛出异常,交给我们自定义的异常处理方法进行处理