在添加值之前,我必须检查数据库中已经存在该名称。
因此,我决定添加快速验证器自定义选项。这在create call中工作正常。但无法在更新呼叫中使用。这是我的代码
const {check,body} = require('express-validator / check'); var models = require(“ ../ models”);
let Validations = [
check('email').isEmail().withMessage("Invalid Email"),
check('phone').isLength({ min: 5 }).withMessage("Min length Required"),
check('name').not().isEmpty().withMessage("Value is Required"),
body("name").custom(value => {
return models.fundraisers.findByName(value).then(user => {
if (user) {
return Promise.reject('Name already in use');
}
})
})
]
如何在更新调用中处理此问题。
谢谢。
答案 0 :(得分:1)
这是我的检查,在创建和更新案例时效果很好:
check('name')
.not().isEmpty()
.isString()
.custom(value => {
return Group
.findByName(value)
.then(groups => {
if(groups.length > 0) {
return Promise.reject(value + '\'s already in use');
}
})
})
顺便说一句,我只定义了身体检查:
const { check, validationResult } = require('express-validator/check');
希望它会有所帮助:)