Я пытаюсь проверить наличие необязательного поля в запросе API и, если это поле существует, выполнить вложенную проверку, чтобы проверить, существуют ли внутри него два других поля (одно или другое, или неявно оба),Я использую Express Validator, чтобы попытаться выполнить эту задачу.
// Sample request body
{
<...>
thresholds: {
min: 3,
max: 5
}
}
// (Attempted) validation chain
check('thresholds').optional()
.custom( innerBody => {
console.log('THRESHOLDS', innerBody);
oneOf([
check('innerBody.min').optional(),
check('innerBody.max').optional()
]);
})
Приведенный выше фрагмент является частью большой цепочки проверки, в которой я проверяю полное тело запроса. Я также попытался удалить строку innerBody.
из внутренних check
s, но все равно не повезло. Я console.log
набираю тело порога, и оно распечатывается правильно, однако я все еще получаю ошибку проверки, когда пытаюсь пройти мой интеграционный тест:
{"name":"ValidationError","message":"ValidationError: Validation failed","errors":[{"location":"body","param":"thresholds","value":{"min":3,"max":5},"msg":"Invalid value"}]}
Я относительно новыйExpress Validator, так что, если я неправильно проверяю правильность цепочки / неправильно использую oneOf
или что-то может понравиться некоторым указателям!
Спасибо