You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:09:02