我有两个字段:登录名和密码。我使用自定义验证器进行验证:
login: {
isNotNull: { errorMessage: 'Required field' },
isServiceUser: {
errorMessage: 'Failed to login',
options: req.body.password,
},
},
password: {
isNotEmpty: { errorMessage: 'Required field' },
}
isServiceUser通过向其他服务发出http请求来进行验证。如何同时验证它们并发送给客户两个字段均无效?
答案 0 :(得分:0)
您可以使用自定义验证。
假设您要检查密码(如果存在)和用户名:
const { check, validationResult } = require('express-validator/check')
app.post(upload.single('customerImage'),[
check('name').custom(async (name, {req}) => {
// api request for fetching user name
const res = await getCust(name)
// change if condition to make it do what you want
if(!res && req.body.password === ""){
throw new Error('user name or password invalid')
}
})], (req, res) => {
const errors = validationResult(req)
if(!errors.isEmpty()){
return res.status(442).json({ errors: errors.array() })
}
//do something
})
您必须根据需要更改验证条件。
如果您想使用Schema Validation