Проверка Joi: функция минимальной длины не работает - PullRequest
0 голосов
/ 30 сентября 2018
const Joi = require('joi');
app.post('/api/courses', (req, res) => {
  const schema = {
    name: Joi.string().min(3).required()
  };
  const result = Joi.validate(req.body, schema);
  if (result.error) {
    res.status(400).send(result.error.details[0].message); 
    return;
  }
  const course = {
    id: courses.length + 1,
    name: req.body.name
  };
  courses.push(course);
  res.send(course);
});

когда я отправляю в почтальоне пустой объект, тогда 400 дают «имя», но если я пишу «имя»: «1», то снова вывод такой же, вместо минимальной длины, которая должна быть 3 символа.

1 Ответ

0 голосов
/ 11 июня 2019

Я не могу повторить проблему.Если вы предоставите более подробную информацию и ошибочные примеры, мы сможем вам помочь.

Joi.string().min(3).required().validate('a'); // ValidationError: "value" length must be at least 3 characters long

const objSchema = {name: Joi.string().min(3).required()};

Joi.validate({}, objSchema); // ValidationError: child "name" fails because ["name" is required]
Joi.validate({name: 'a'}, objSchema); // ValidationError: child "name" fails because ["name" length must be at least 3 characters long]

Joi.version; // '14.3.1'
...