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

267
Vistas
¿Cómo verificar si está vacío o si hace referencia a otro esquema en JOI?

Tengo un esquema "Boulder" en joi :

 module.exports.boulderSchema = Joi.object({ name: Joi.string().required(), grade: Joi.string().required(), image: Joi.string().required(), description: Joi.string().required(), reviews: Joi.any() })

con el esquema "Revisar":

 module.exports.reviewSchema = Joi.object({ rating: Joi.number().required().min(1).max(5), comment: Joi.string().required() })

el esquema de mangosta "Boulder" al que hace referencia mi Joi Schema es el siguiente:

 const boulderSchema = new Schema({ name: { type: String, required: true }, grade: { type: String, required: true }, image: { type: String, required: true }, description: { type: String, required: true }, reviews: [{type: Schema.Types.ObjectId, ref:'Review'}] });

y también mi esquema de mangosta "Revisión":

 const reviewSchema = new Schema({ rating: { type: Number, required: true }, comment: { type: String, required: true } });

Así que aquí está la pregunta... Cuando creo un punto de datos de "roca", puede tener una "revisión" adjunta, o puede tener una "revisión" null , de ahí mi código de Joi.any() para aceptar ambos. También estoy comprobando si las reseñas están vacías y usando delete req.body['reviews']; en mi ruta de publicación antes de guardar mi punto de datos. He .alternatives() y .when() pero no estoy seguro de cómo usarlo.

Supongo que mi pregunta viene en dos partes.

  1. ¿Cómo hago un Esquema Joi sólido que verificará "cuándo" está vacío para aceptar null con Joi.any() y luego...
  2. usar "alternativas" para verificar su .array() de objectId que coincide con la referencia a "Revisar"?

en todo caso, así es como debe hacerse. ¡Estoy totalmente perdido y cualquier ayuda será apreciada!

about 4 years ago · Juan Pablo Isaza
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