diff --git a/index.js b/index.js index 3184e46..66b745b 100644 --- a/index.js +++ b/index.js @@ -16,6 +16,7 @@ let RedisStore = require("connect-redis")(session) const { APP_PORT, APP_KEY } = process.env; + app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: true })); app.use(cookie_parse(APP_KEY)) @@ -37,6 +38,24 @@ app.use((req, res, next) => { }) + + +// error handler +app.use(async (err, req, res, next) => { + console.log(err); + if (res.headersSent) { + return next(err); + } + + const Helpers = require('./helpers'); + + res.status(500); + res.send(await Helpers.ViewLoader.load('error.pug', { + error: '500 Internal Server Error', + message: 'An unexpected error happened in the server' + })); +}) + const server = app.listen(APP_PORT, () => { console.log("Listening on port " + APP_PORT); }); diff --git a/middleware/error_handler.js b/middleware/error_handler.js new file mode 100644 index 0000000..ac1a4b5 --- /dev/null +++ b/middleware/error_handler.js @@ -0,0 +1,15 @@ +const Helpers = require('../helpers'); + +async function handler(err, req, res, next) { + if (res.headersSent) { + return next(err) + } + res.status(500).send(Helpers.ViewLoader.load('error.pug', { + error: '500 Internal Server Error', + message: 'An unexpected error happened in the server' + })); +} + +module.exports = (router) => { + // router.use(handler); +} \ No newline at end of file