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))抛出异常,交给我们自定义的异常处理方法进行处理
本文介绍了如何在Node.js的Express框架中利用express-validator进行POST请求参数的验证。通过示例代码展示了安装、基本用法以及错误处理,包括设置字段类型检查和自定义错误消息。当验证失败时,使用boom库抛出badRequest异常,提供了一种统一的异常处理方式。
3432

被折叠的 条评论
为什么被折叠?



