【问题标题】:Node how to add required validation and custom message节点如何添加所需的验证和自定义消息
【发布时间】:2021-08-28 10:51:59
【问题描述】:

我正在为用户注册创建一个简单的 API,不保存任何内容,只是对其进行控制台。我需要知道的是如何添加所需的验证。我有 4 个字段用户电子邮件、用户密码、用户名、用户编号。我已经成功添加了对电子邮件和密码的验证,但是如果我没有通过邮递员发送姓名和号码,它也可以工作,我需要为姓名和号码添加验证,所以如果我没有在 API 中传递姓名和号码,它会说姓名和需要编号。

我的代码

app.post('/createUser',
    body('userEmail').isEmail(),
    body('userPassword').isLength({ min: 5, }), function (req, res) {

        const errors = validationResult(req);
        if (!errors.isEmpty()) {
            return res.status(400).json({ errors: errors.array() });
        }

        console.log(req.body);
        res.status(200).send('User successfully created');
    });

此外,如果电子邮件未经过验证,则会显示此错误

{
    "errors": [
        {
            "value": "umaiz",
            "msg": "Invalid value",
            "param": "userEmail",
            "location": "body"
        }
    ]
}

我需要改变它的结构

{'success': false, 'msg':'Email address is not valid.'}

因为作为上一条消息,我很难处理该错误,所以我可以只显示错误所显示的值的消息。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    第一种:使用exists 方法: body('name', 'some error msg').exists()

    第二个:在res.status(400).json({ errors: errors.array() });返回错误之前添加一个解析器

    解析器可能看起来像:

    function parse(errors) {
     return {
      success: false,
      msg: errors.map( (error) => `${error.msg}: ${error.param}` )
     }
    }
    // Result will be in format: {success: boolean, msg: string[]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2017-01-08
      • 2022-11-21
      • 2017-05-30
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多