From f183609f16345d1f944fde604ffec7ebbd3d2cbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hermerson=20Ara=C3=BAjo?= Date: Sun, 11 Feb 2024 17:59:47 -0300 Subject: [PATCH] refactor: improve error handler --- .env.example | 2 +- src/application/middlewares/error_handler.ts | 6 +++++- src/application/pages/500.html | 5 +++++ src/application/routers/pages.ts | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/application/pages/500.html diff --git a/.env.example b/.env.example index 04f5848..c89a2c8 100644 --- a/.env.example +++ b/.env.example @@ -2,7 +2,7 @@ NODE_ENV=development SERVER_PORT=8000 SERVER_DOMAIN='' -SERVER_URL='http://locahost:8000' +SERVER_URL='http://localhost:8000' DB_HOST=localhost DB_PORT=5432 diff --git a/src/application/middlewares/error_handler.ts b/src/application/middlewares/error_handler.ts index 36d7e34..1909b95 100644 --- a/src/application/middlewares/error_handler.ts +++ b/src/application/middlewares/error_handler.ts @@ -3,11 +3,15 @@ import { NextFunction, Request, Response } from 'express'; // eslint-disable-next-line @typescript-eslint/no-unused-vars export default function errorHandler( error: Error, - _request: Request, + request: Request, response: Response, _next: NextFunction, ) { console.log(error); + if (request.originalUrl.startsWith('/forms') || request.originalUrl.startsWith('/pages')) { + return response.redirect('/pages/500'); + } + return response.status(500).json({ message: 'Internal Server Error' }); } diff --git a/src/application/pages/500.html b/src/application/pages/500.html new file mode 100644 index 0000000..b45ad17 --- /dev/null +++ b/src/application/pages/500.html @@ -0,0 +1,5 @@ +{{> _head}} +
+

500

+
+{{> _footer}} \ No newline at end of file diff --git a/src/application/routers/pages.ts b/src/application/routers/pages.ts index 3d7b7d1..997e729 100644 --- a/src/application/routers/pages.ts +++ b/src/application/routers/pages.ts @@ -81,4 +81,10 @@ router.get('/forgot-password', (_request: Request, response: Response) => { }); }); +router.get('/500', (_request: Request, response: Response) => { + response.render('500', { + title: 'Internal Server Error!', + }); +}); + export default router;