Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

339
Visualizações
Joi valida uno de dos esquemas

Tengo un objeto simple con pocos campos que me gustaría validar. Deseo permitir un esquema de validación específico o que todas las propiedades tengan valores vacíos

Creé los siguientes dos esquemas:

 const nonEmptyUserInfoValidationSchema = Joi.object({ url: Joi.string().uri().required(), username: Joi.string().required().min(usernameMinLength), password: Joi.string().required().min(passwordMinLength), }); const emptyUserInfoValidationSchema = Joi.object({ url: Joi.string().empty().required(), username: Joi.string().empty().required(), password: Joi.string().empty().required(), });

Deseo crear un esquema que valide si se aplica emptyUserInfoValidationSchema o nonEmptyUserInfoValidationSchema pero no sé cómo hacerlo, ¿alguna sugerencia?

permitió:

 {url:"http://some.url", username:"some username", password:"some password"} {url:"", username:"", password:""}

No permitido:

 {url:"http://some.url", username:"", password:""}
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Bueno, finalmente encontré lo que estaba buscando joi.alternatives :

 export const ansibleInfoValidationSchema = Joi.alternatives(emptyUserInfoValidationSchema , nonEmptyUserInfoValidationSchema );

Parece funcionar

about 4 years ago · Juan Pablo Isaza Relatório

0

Espero que esto te ayude, puedes usar la condición when en Joi

 var schema = Joi.object({ url : Joi.any().when('username',{is: Joi.empty(), then: Joi.empty().required(),otherwise: Joi.string().required()}), username: Joi.when('password',{is: Joi.empty(), then: Joi.empty(),otherwise: Joi.string().required().min(usernameMinLength)}) });

aquí hay un enlace a when docs Joi When Condtion

about 4 years ago · Juan Pablo Isaza Relatório

0

.keys().and() para especificar compañeros. Esto significa que ninguno de los campos especificados en .and() existirá uno sin el otro. Por lo tanto, debe usarse como tal:

 const schema = Joi.object({ url: Joi.string().uri(), username: Joi.string().min(usernameMinLength), password: Joi.string().min(passwordMinLength) }).keys().and('url', 'username', 'password');

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda