blackmistcode's picture
Add files using upload-large-folder tool
0dc7194 verified
Raw
History Blame Contribute Delete
989 Bytes
/**
* Middleware centralizado de manejo de errores.
*
* Responsabilidades:
* - Capturar errores lanzados por controladores, servicios o middlewares.
* - Si es HttpError conocido: responder con el status y codigo definido.
* - Si es error inesperado: loguear el stack y responder 500 generico
* ("Internal server error") para no filtrar detalles internos en produccion.
*
* Montado al final de app.js como ultimo middleware.
*/
import { HttpError } from '../utils/apiResponse.js';
import { logger } from '../utils/logger.js';
export const errorHandler = (err, req, res, _next) => {
if (err instanceof HttpError) {
return res.status(err.status).json({
ok: false,
error: { code: err.code, message: err.message, details: err.details },
});
}
logger.error({ err, path: req.path, method: req.method }, 'unhandled error');
return res.status(500).json({
ok: false,
error: { code: 'INTERNAL', message: 'Internal server error' },
});
};