Node.js如何使用express-validator添加必填校验及自定义错误返回格式
修改后完整代码
const { body, validationResult } = require('express-validator'); app.post('/createUser', // 邮箱格式校验 body('userEmail').isEmail().withMessage('Email address is not valid.'), // 密码长度校验 body('userPassword').isLength({ min: 5 }).withMessage('密码长度不能少于5位'), // 用户名必填校验 body('userName').exists().notEmpty().withMessage('用户姓名为必填项'), // 手机号必填校验 body('userNumber').exists().notEmpty().withMessage('手机号为必填项'), function (req, res) { const errors = validationResult(req); if (!errors.isEmpty()) { // 直接返回首个错误提示,匹配你需要的结构 return res.status(400).json({ success: false, msg: errors.array()[0].msg }); } console.log(req.body); res.status(200).json({ success: true, msg: '用户创建成功' }); });
核心修改说明
- 新增必填校验规则:给
userName、userNumber字段添加exists()(校验请求中必须包含该字段)和notEmpty()(校验字段值不能是空字符串)规则,同时通过withMessage()自定义未传参时的提示文案 - 调整错误返回结构:校验失败时不再返回完整的错误数组,直接提取第一个错误的提示信息,组装为你要求的
{success: false, msg: 'xxx'}格式,前端可直接读取msg字段展示 - 所有字段的提示文案都可以根据你的需求修改
withMessage()内的内容即可
内容的提问来源于stack exchange,提问作者rameez khan
相关产品推荐
相关产品推荐

