diff --git a/package-lock.json b/package-lock.json index 79fc219..6147930 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "ejs": "^3.1.9", "express": "^4.18.2", "express-session": "^1.17.3", + "http-errors": "^2.0.0", "knacss": "^8.0.4", "luxon": "^3.4.3", "mongoose": "^7.5.2", diff --git a/package.json b/package.json index 8e36bc7..99af9bc 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "ejs": "^3.1.9", "express": "^4.18.2", "express-session": "^1.17.3", + "http-errors": "^2.0.0", "knacss": "^8.0.4", "luxon": "^3.4.3", "mongoose": "^7.5.2", diff --git a/src/app.js b/src/app.js index 0695a52..b7dbea4 100644 --- a/src/app.js +++ b/src/app.js @@ -17,6 +17,7 @@ import authRoutes from './routes/auth'; import {trustProxy, env, mongoDbUri, secret, port} from './config'; import {isXhr, getBaseUrl} from './helpers'; +import createHttpError from 'http-errors'; passportConfig(passport); @@ -77,39 +78,23 @@ app.use('/', globalRoutes); app.use('/', authRoutes); // Handle 404 -app.use((req, res) => { - if (isXhr(req)) { - res.status(404).send({message: '404: Not found'}); - } else { - res.status(404); - res.render('index', { - pagename: '404', - viewname: 'error', - page: { - title: '404: Cette page n\'existe pas.', - }, - baseUrl: getBaseUrl(req), - params: {}, - query: {}, - user: req.user, - error: 'La page demandée n\'existe pas sur le server', - }); - } +app.use((req, res, next) => { + next(createHttpError(404)); }); -// Handle 500 +// Handle error app.use((error, req, res, next) => { if (isXhr(req)) { const {message, errorCode, date} = error; - res.status(error.errorCode || 500).send({message, errorCode, date}); + res.status(error.errorCode || error.statusCode || 500).send({message, errorCode, date}); } else { console.log('ERR:', error); - res.status(error.errorCode || 500); + res.status(error.errorCode || error.statusCode || 500); res.render('index', { pagename: '500', viewname: 'error', page: { - title: '500: Oups… le serveur a crashé !', + title: error.message || '500: Oups… le serveur a crashé !', }, baseUrl: getBaseUrl(req), params: {},