Схема проверки Joi

#node.js #validation #joi

#node.js #проверка #joi

Вопрос:

У меня есть схема, в которой мне нужно выполнить проверку следующим образом

 const schema = Joi.object({
   a: Joi.string(),
   b: Joi.string(),
   c: Joi.string()
})
 

Если какой-либо из них присутствует, я хочу сделать оставшиеся два необязательными. Как я могу это сделать?

Ответ №1:

Взгляните на документы Joi по адресу https://joi.dev/api/?v=17.3.0

Затем попробуйте что-то вроде этого:

 const schema = Joi
  .alternatives([
    Joi.object({
      a: Joi.string().required(),
      b: Joi.string(),
      c: Joi.string(),
    }),
    Joi.object({
      a: Joi.string(),
      b: Joi.string().required(),
      c: Joi.string(),
    }),
    Joi.object({
      a: Joi.string(),
      b: Joi.string(),
      c: Joi.string().required(),
    }),
  ])
  .match('one')
  ;