自定义 express-validator 验证器不起作用
Custom express-validator validator doesn't work
我的代码有问题,如果数据库中已经存在,我设置了检查电子邮件的验证,其他验证有效但电子邮件验证无效
这是我在控制器中的代码
AuthController.register = (req, res) => {
//EMAIL
req.checkBody('email')
.isEmail().withMessage( "must be provided" )
.custom((value, req ) => {
return AuthController.findUserByEmail(req, value).then(user => {
if(user == true){
return Promise.reject('E-mail already in use');
}
});
}).withMessage('E-mail already in use');
}
这段代码没有重新调整错误,可以帮我解决这个问题
关于 express-validator,你做错的是解包第二个参数以获得 req
; .custom()
takes a validator(value, { req, location, path })
function.
只需像下面这样更改即可:
// before
// .custom((value, req ) => {
// after
.custom((value, { req }) => {
...那么,如果您的 AuthController.findUserByEmail()
逻辑是正确的,它应该会按您的预期工作;)
我的代码有问题,如果数据库中已经存在,我设置了检查电子邮件的验证,其他验证有效但电子邮件验证无效
这是我在控制器中的代码
AuthController.register = (req, res) => {
//EMAIL
req.checkBody('email')
.isEmail().withMessage( "must be provided" )
.custom((value, req ) => {
return AuthController.findUserByEmail(req, value).then(user => {
if(user == true){
return Promise.reject('E-mail already in use');
}
});
}).withMessage('E-mail already in use');
}
这段代码没有重新调整错误,可以帮我解决这个问题
关于 express-validator,你做错的是解包第二个参数以获得 req
; .custom()
takes a validator(value, { req, location, path })
function.
只需像下面这样更改即可:
// before
// .custom((value, req ) => {
// after
.custom((value, { req }) => {
...那么,如果您的 AuthController.findUserByEmail()
逻辑是正确的,它应该会按您的预期工作;)