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

318
Visualizações
Joi no acepta el valor de cadena correcto con válido ()

Tengo un formulario con una entrada desplegable, por lo que las opciones para esa entrada ya están configuradas.

El problema es que el valor de la entrada, a pesar de ser correcto y está dentro de los valores aceptados del esquema, recibí el mensaje de que el Provider must be one of [[object Set], [object Set]] .

Lo más extraño es que este problema está ocurriendo en producción, pero en localhost no obtengo este error de validación.

clave de provider del schema :

 provider: Joi.string().required().label('Provider').when('entitlementType', { is: 'Offer', then: Joi.string().valid(...providersForSubscriptions), otherwise: Joi.string().valid(...providersForProducts), }),

matriz providersForSubscriptions suscripciones:

 [ "RBL", ]

matriz providersForProducts productos:

 [ "RBL", "content-store", "zencore", "VIP" ]

Como puede ver, es una validación bastante simple, recibirá algún valor del provider y aceptará el valor si está dentro de las matrices valid .

Registro del formulario en el navegador.

console.log(entitlementType, provider, providersForProducts);

Y esta es la salida:

ingrese la descripción de la imagen aquí

Entonces, ¿qué está pasando? Si verificamos el context de la advertencia de validación, el valor de entrada es zencore y zencore se considera un valor válido.

¿Alguna idea? ¿Debería intentar refactorizar el esquema? ¿Por qué esto es solo prod?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

De su esquema:

 provider: Joi.string().required().label('Provider').when('entitlementType', { is: 'Offer', then: Joi.string().valid(...providersForSubscriptions), otherwise: Joi.string().valid(...providersForProducts), }),

Y su salida, podemos ver que entitlementType NO es una oferta. Entonces eso significa

 Joi.string().valid(...providersForProducts),

se está utilizando para la validación en este campo en particular.

También podemos ver que el Provider must be one of [[object Set], [object Set]] lo que significa que Joi está comprobando una serie de conjuntos.

Eso nos señala a providersForProducts como el culpable.

¿Por qué es una matriz de conjuntos? Quién sabe. Registre ese valor para confirmar y luego regrese para ver por qué está configurado como tal.

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