Estoy tratando de crear un middleware de manejo de errores y, como puede ver en la imagen adjunta cuando estoy haciendo el
app.use((err,req,res,next) => {...})block my IDE se reconoce automáticamente como middleware de 3 parámetros. y no puedo hacer que funcione como middleware err-req-res-next. Pensé, tal vez el IDE indexó mal ese bloque, e intenté ejecutarlo, y mientras ejecutaba Express no reconoce un middleware de manejo de errores
Agrego "app.use" en mi server.js (que es lo mismo que app.js), y como el último app.use colocado, justo antes de escuchar.
Estoy usando el último expreso hasta la fecha: 4.18.1
¡Cualquier ayuda para encontrar una solución será genial!
Muchas gracias.
Agregue estos dos después de todos los métodos de enrutamiento:
// 404 not found error app.get('*', (req, res) => { res.status(404).send('<h1>error 404 not found</h1>'); }) // 500 server error app.use((error, req, res, next)=>{ if(error){ res.send('500 OOPS :( Something went wrong... Please try again. ') } })¡Lo averigué!
El problema fue que agregué el "middleware de manejo de errores" en "server.js", debería haber estado en placeholder.routes.js del controlador relevante.
La respuesta de abdurrahim realmente ayudó a resolverlo, después de agregar el código que adjuntó, vi que estaba detectando los errores, y el "error del servidor 500" es, técnicamente, un middleware de manejo de errores.
Así que agregué el siguiente código después de todas las rutas en el archivo de rutas y logré manejar los diferentes errores que arrojaba.
¡Gracias un montón!