首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点如何添加所需的验证和自定义消息

节点如何添加所需的验证和自定义消息
EN

Stack Overflow用户
提问于 2021-08-28 10:51:59
回答 1查看 13关注 0票数 0

我正在为用户注册创建一个简单的API,没有保存任何东西,只是对它进行了控制。我需要知道的是如何添加所需的验证。我有4个领域的用户电子邮件,userPassword,userName,用户编号。我已经成功地添加了验证电子邮件和密码,但如果我没有通过邮递员发送姓名和号码,它也是工作的,我需要添加验证的姓名和号码,所以如果我没有通过API中的姓名和号码,它将显示姓名和号码需要。

我的代码

代码语言:javascript
运行
复制
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');
    });

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

代码语言:javascript
运行
复制
{
    "errors": [
        {
            "value": "umaiz",
            "msg": "Invalid value",
            "param": "userEmail",
            "location": "body"
        }
    ]
}

我需要改变它的结构,比如

代码语言:javascript
运行
复制
{'success': false, 'msg':'Email address is not valid.'}

因为像前面的消息一样,处理这个错误对我来说太难了,所以我只能显示错误显示的值。

EN

回答 1

Stack Overflow用户

发布于 2021-08-28 11:02:17

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

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

解析器可能如下所示:

代码语言:javascript
运行
复制
function parse(errors) {
 return {
  success: false,
  msg: errors.map( (error) => `${error.msg}: ${error.param}` )
 }
}
// Result will be in format: {success: boolean, msg: string[]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68963643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档