Проверьте массив строк с joi, должны быть строки - PullRequest
0 голосов
/ 30 мая 2019

Мне нужно проверить массив, чтобы проверить, являются ли его элементы строками, используя joi.Всегда выдает ошибку «Inavlid tag».

// returned array from req.body
let tags = ["Vue", "React", "Angular"]

// joi shema
const schema = {
     tags: Joi.array().items(Joi.string()),
};

const { error, value } = Joi.validate(tags, schema);

if (error) {
     return res.status(400).send({ tagError: "Invalid tag" });
}

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Джой был недавно изменен на @hapi/joi (буквально 2 недели назад), поэтому убедитесь, что вы в первую очередь правильно переключили пакет NPM: npm uninstall joi и npm i -s @hapi/joi.Не забудьте также изменить свои операторы require для этого изменения.

Чтобы определить свою схему в этом новом пакете, вы должны использовать:

const schema = Joi.array().items(Joi.string());
0 голосов
/ 30 мая 2019

Проблема связана с тем, как вы определили схему, правильный способ проверки будет:

// returned array from req.body
let tags = ["Vue", "React", "Angular"]

const schema = Joi.array().items(Joi.string());

const { error, value } = Joi.validate(tags, schema);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...