我强调文本收到了带有可选电子邮件的表格,并且我正在使用express-validator进行服务器端验证。
当我提交时,应该先验证然后处理数据以保存它。
routes / users.js
router.post('/save', users.validationRules(), users.save)
controllers / usersController.js
usersController.validationRules = () {
return [
// ...
// Some other validation rules that works
// ...
check('email', 'You need a valid Email')
.optional()
.isEmail(),
// ... More validation rules that also works ...
]
}
usersController.save = (req, res) => {
let errors = validationResult(req)
console.log(errors);
}
它向我显示错误消息,就像它忽略了optional()
方法一样。你们对正在发生的事情或我在做什么错有任何想法吗?
您可以尝试使用.optional({ checkFalsy: true })
来检查伪造的值(例如““,0,false,null)。
docs上的更多信息>