Javascript Express validator如何仅在存在另一个字段时使字段成为必需字段
express validator,如何使一个字段仅在另一个字段存在时才成为必需字段Javascript Express validator如何仅在存在另一个字段时使字段成为必需字段,javascript,node.js,express,express-validator,Javascript,Node.js,Express,Express Validator,express validator,如何使一个字段仅在另一个字段存在时才成为必需字段 const validateUpdateStore = () => { return [ body('logo').optional().isURL().withMessage('invalid url'), body('email') .optional() .isEmail() .withMessage('email is invalid')
const validateUpdateStore = () => {
return [
body('logo').optional().isURL().withMessage('invalid url'),
body('email')
.optional()
.isEmail()
.withMessage('email is invalid')
.trim()
.escape(),
body('phone').optional().isInt().withMessage('integers only!'),
body('account_number').optional().isInt().withMessage('integers only!'),
body('bank_code').optional().isInt().withMessage('integers only!'),
];
};
我希望仅当提供了账号
时才需要银行代码
字段,反之亦然增加了对条件验证器的支持。我目前没有在文档中看到它,但是有一个包含更多信息的文档。看起来您应该能够如下定义您的验证:
const validateUpdateStore = () => {
return [
body('logo').optional().isURL().withMessage('invalid url'),
body('email')
.optional()
.isEmail()
.withMessage('email is invalid')
.trim()
.escape(),
body('phone').optional().isInt().withMessage('integers only!'),
body('account_number')
.if(body('bank_code').exists()) // if bank code provided
.not().empty() // then account number is also required
.isInt() // along with the rest of the validation
.withMessage('integers only!')
,
body('bank_code')
.if(body('account_number').exists()) // if account number provided
.not().empty() // then bank code is also required
.isInt() // along with the rest of the validation
.withMessage('integers only!')
,
];
};