Joi проверяет массив чисел длиной 1-2, где первое должно быть меньше второго

#javascript #joi

#javascript #joi

Вопрос:

Я пытаюсь проверить массив чисел длиной 1-2 элемента, числа также ограничены диапазоном от -60 до 60. Я не могу понять, как проверить, что первый элемент должен быть меньше второго.

Пример моего кода:

 a: joi.array().items(joi.number().min(-60).max(60)).min(1).max(2)
 .required()
 .error(() => ''))
  

Ответ №1:

В Joi есть метод сортировки для массивов. В вашем случае решением было бы

 {
  a: Joi.array()
       .min(1).max(2).required()
       .items(Joi.number().min(-60).max(60).strict(true))
       .sort({
         order: "ascending",
     }).strict()
}
  

Это означает, что поле a является обязательным массивом с минимальной длиной 1 и максимальной длиной 2. Его элементы являются строго числами (без числовой строки), минимальное значение равно -60, а максимальное — 60 (диапазон от -60 до 60).
Его элементы должны быть отсортированы в порядке возрастания.

Чтобы включить сообщение об ошибке для этого, проверьте ошибку сортировки массива