Soy un principiante.
cuando estoy probando la ruta con una ID incorrecta (corta), por ejemplo, en lugar de "6261220286e8d5e7ee6f221e" , pongo "6261220286e8d5e7ee6f221" la aplicación del nodo falla con este error:
aquí está el código de ruta:
router.put('/:id', async (req, res) => { //Validate with Joi const { error } = validateGenre(req.body); //If invalid, return 400 - Bad Request. if (error) return res.status(400).send(error.details[0].message); //Look up the genre and Update. const genre = await Genre.findByIdAndUpdate(req.params.id, { name: req.body.name }, { new: true }) //If not exists, return 404. if (!genre) return res.status(404).send('The genre with the given ID was not found'); //Return ubdated genre. res.send(genre); }); function validateGenre(genre) { const schema = Joi.object({ name: Joi.string().min(3).max(50).required() }); return schema.validate(genre); }aquí también el esquema de género:
const genreSchema = new mongoose.Schema({ name: { type: String, required: true, minlength: 5, maxlength: 50, } }); const Genre = new mongoose.model('Genre', genreSchema);Mi pregunta es: cómo manejar este tipo de error o cómo validar la longitud de ID solicitada para devolver el mensaje adecuado al cliente.
Lo siento de nuevo, soy realmente un principiante y gracias de antemano.
¿Ha intentado usar try catch ? En la sección de captura, puede responder con el estado 500 y un mensaje de error arrojado por Genre