我使用express 3.x的express-validator --当用户更改密码或注册新帐户时,他们必须输入两次密码。
如果两个密码(两个字符串)不匹配,我如何编写一个自定义验证器,将错误推送到express-validator中的错误堆栈?
如下所示:
req.assert('password1', 'Passwords do not match').isIdentical(password1, password2);
var mappedErrors = req.validationErrors(true);发布于 2012-09-23 08:31:46
我找到了答案
req.assert('password2', 'Passwords do not match').equals(req.body.password1);
var mappedErrors = req.validationErrors(true);发布于 2016-07-27 23:14:53
这个可以用!
req.checkBody('password2','Passwords do not match.').equals(req.body.password1);
var errors = req.validationErrors();请注意本例中checkBody()的使用
发布于 2018-08-14 23:14:13
这就是我找到的答案
const { body } = require('express-validator/check');
app.post('/user', body('passwordConfirmation').custom((value, { req }) => {
if (value !== req.body.password) {
throw new Error('Password confirmation does not match password');
}
}), (req, res) => {
// Handle the request
});`检查此文档https://express-validator.github.io/docs/custom-validators-sanitizers.html
https://stackoverflow.com/questions/12548624
复制相似问题