From b4f1df3d18c8e82148555ae475ba5887caddc24a Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Thu, 19 Dec 2013 13:53:00 -0500 Subject: [PATCH] Added error handling middleware that catches all errors. Also added 500.jade template for a user-friendly error template. --- app.js | 5 +++++ views/500.jade | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 views/500.jade diff --git a/app.js b/app.js index 537245e1b9..2b12f9476e 100755 --- a/app.js +++ b/app.js @@ -43,6 +43,11 @@ app.use(function(req, res) { res.status(404); res.render('404'); }); +app.use(function(err, req, res, next){ + console.error(err.stack); + res.status(500); + res.render('500'); +}); // Development only if ('development' === app.get('env')) { diff --git a/views/500.jade b/views/500.jade new file mode 100644 index 0000000000..66e85fc07a --- /dev/null +++ b/views/500.jade @@ -0,0 +1,47 @@ +doctype 5 +html + head + title We're sorry, but something went wrong (500) + style. + body { + background-color: #EFEFEF; + color: #2E2F30; + text-align: center; + font-family: arial, sans-serif; + } + div.dialog { + width: 25em; + margin: 4em auto 0 auto; + border: 1px solid #CCC; + border-right-color: #999; + border-left-color: #999; + border-bottom-color: #BBB; + border-top: #B00100 solid 4px; + border-top-left-radius: 9px; + border-top-right-radius: 9px; + background-color: white; + padding: 7px 4em 0 4em; + } + h1 { + font-size: 100%; + color: #730E15; + line-height: 1.5em; + } + body > p { + width: 33em; + margin: 0 auto 1em; + padding: 1em 0; + background-color: #F7F7F7; + border: 1px solid #CCC; + border-right-color: #999; + border-bottom-color: #999; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-top-color: #DADADA; + color: #666; + box-shadow:0 3px 8px rgba(50, 50, 50, 0.17); + } + body + .dialog + h1 We're sorry, but something went wrong. + p If you are the application owner check the logs for more information.