Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

269
Views
¿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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!