Как я могу использовать валидную функцию Joi и разрешать как строчные, так и прописные буквы - PullRequest
0 голосов
/ 05 марта 2020

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

Я хотел бы разрешить, например, только следующие строки: ['a', 'b', 'c'], но также разрешить как прописные, так и строчные буквы. (например, 'A' также допустимо);

что я пытался сделать:

const schema = Joi.object().keys({
   letter: Joi.string().valid('a','b','c').insensitive()
})

schema.validate({letter: 'B'}) //return error but i want it to return 'B'

Я также пробовал каждую комбинацию строчных и прописных функций с помощью convert, но я не мог сделать это работает. я хотел бы, чтобы, например, {письмо: 'A'} оказалось бы действительным.

есть ли способ объединить действительную функцию с нечувствительным, так что все верхний и нижний регистр будут приняты?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 05 марта 2020

Я думаю, это работает нормально. Если вы запустите следующий код, вы получите {"letter": "b"}

const Joi = require("@hapi/joi");
const schema = Joi.object().keys({
  "letter": Joi.string().valid("a", "b", "c").insensitive()
});

console.log(schema.validate({"letter": "B"}, {"convert": true}));

С преобразованием false вы получите B заглавными буквами.

Вы можете увидеть здесь бегущий код - https://repl.it/repls/HarmfulEvenPhases

...