| 7 | @Service() |
| 8 | @Middleware({ type: "after" }) |
| 9 | export class ErrorMiddleware implements ExpressErrorMiddlewareInterface { |
| 10 | constructor(private loggerService: LoggerService) {} |
| 11 | |
| 12 | error: ErrorRequestHandler<never, GeneralResponseDto, unknown> = (err, req, res, next) => { |
| 13 | // Logs error |
| 14 | this.loggerService.error({ |
| 15 | message: "Internal Server Error", |
| 16 | error: err?.message, |
| 17 | }); |
| 18 | |
| 19 | // Skip if headers are already sent |
| 20 | if (res.headersSent) { |
| 21 | return next(err); |
| 22 | } |
| 23 | |
| 24 | // return a general error response |
| 25 | return res.status(500).json({ |
| 26 | code: 500, |
| 27 | msg: err?.message, |
| 28 | }); |
| 29 | }; |
| 30 | } |