El patrón que uso para manejar errores en todas mis APIs Node.js
por Sergio Diaz Delgado··95 votos
Despues de mucho prueba y error, mi patron de manejo de errores:
class AppError extends Error {
constructor(message, statusCode = 500, code = 'INTERNAL_ERROR') {
super(message)
this.statusCode = statusCode
this.code = code
}
}
// Middleware global
app.use((err, req, res, next) => {
const status = err.statusCode || 500
const message = err.message || 'Internal Server Error'
res.status(status).json({ success: false, error: message, code: err.code })
})
Todos los errores pasan por aqui. Sin try/catch duplicado. Sin inconsistencias en el formato de error.