我正在为用户注册创建一个简单的API,没有保存任何东西,只是对它进行了控制。我需要知道的是如何添加所需的验证。我有4个领域的用户电子邮件,userPassword,userName,用户编号。我已经成功地添加了验证电子邮件和密码,但如果我没有通过邮递员发送姓名和号码,它也是工作的,我需要添加验证的姓名和号码,所以如果我没有通过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.'}
因为像前面的消息一样,处理这个错误对我来说太难了,所以我只能显示错误显示的值。
发布于 2021-08-28 03:02:17
第一:使用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[]}
https://stackoverflow.com/questions/68963643
复制相似问题