Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Cómo actualizar un objeto de esquema, después de la creación, dentro de un objeto Joi?

No estaba seguro de la mejor manera de formular la pregunta, pero aquí hay un ejemplo de lo que estoy tratando de hacer.

 const schema = Joi.Object().keys({ array: Joi.array().length(5) });

Luego, después de la creación, quiero actualizar el método de longitud para que sea un número diferente.

 this.schema.keys({ array: Joi.array().length(8) });

El código anterior no funciona y realmente no estoy seguro de qué más probar. (Esto no es lo único que he intentado, justo donde estoy actualmente) He estado revisando la documentación pero no he encontrado nada útil para actualizar un esquema. Tal vez alguien sabe de una manera de hacerlo?

¡Cualquier ayuda sería muy apreciada!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

const Joi = require('joi'); //// // update schema itself. //// let scheme = Joi.object().keys({ foo: Joi.array().length(5), }); const a1 = scheme.validate({ foo: [1,2,3,4,5] }); console.log(a1.error); // undefined. valid. scheme = scheme.keys({ foo: Joi.array().length(8), }); const a2 = scheme.validate({ foo: [1,2,3,4,5] }); console.log(a2.error); // array.length error occurred. const a3 = scheme.validate({ foo: [1,2,3,4,5,6,7,8] }); console.log(a3.error); // undefined. vaild. //// // using base scheme. //// const base = Joi.object().keys({ foo: Joi.array(), }); const base_a = base.keys({ foo: Joi.array().length(5), }); console.log('Using base a1', (base_a.validate({ foo: [1,2,3,4,5]})).error); const base_b = base.keys({ foo: Joi.array().length(8), }); console.log('Using base a2', (base_b.validate({ foo: [1,2,3,4,5]})).error); console.log('Using base a3', (base_b.validate({ foo: [1,2,3,4,5,6,7,8]})).error); //// // Not good but works. //// const obj = Joi.object({ foo: Joi.array().length(5), }); console.log('Obj a1', (obj.validate({ foo: [1,2,3,4,5]})).error); const merged = Object.assign(obj, Joi.object({ foo: Joi.array().length(8), })); console.log('Obj a2', (merged.validate({ foo: [1,2,3,4,5]})).error); console.log('Obj a3', (merged.validate({ foo: [1,2,3,4,5,6,7,8]})).error);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda