我正在使用express-validator来验证我的请求数据。根据添加它们的文档,我们必须像这样声明它们
app.use(expressValidator({
customValidators: {
isArray: function(value) {
return Array.isArray(value);
},
gte: function(param, num) {
return param >= num;
}
}
}));
我在文档中添加了一个验证器。但我只能回归真假。
我想确保根据条件验证器跳过进一步的链验证。
答案 0 :(得分:0)
你可以分阶段完成。在这里,我首先检查是否设置了用户名,并且只有在通过时我才进行昂贵的异步验证。
req.checkBody('username')
.notEmpty().withMessage('Username is required.');
req.getValidationResult().then(result => {
if (!result.isEmpty()) {
return res.status(400).send(result.mapped());
}
req.checkBody('username')
.isUserNameAvailable().withMessage('Username is not available.');
req.getValidationResult().then(result => {
if (!result.isEmpty()) {
return res.status(400).send(result.mapped());
}
next();
});
})