From b02878d41da0075fcef20b0b8526f532f95052f6 Mon Sep 17 00:00:00 2001 From: Carlos Brito Lage Date: Sun, 20 Oct 2013 15:00:51 -0700 Subject: [PATCH 1/3] Added custom error handler --- server.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/server.js b/server.js index 5dd5d32..1b4a912 100644 --- a/server.js +++ b/server.js @@ -82,6 +82,24 @@ app.get('/manifest.cache', function (req, res) { app.get('*', clientApp.html()); +app.use(function handleError(err, req, res, next) { + var errorResult = {message: 'something bad happened'}; + + if (config.isDev) { + if (err instanceof Error) { + if (err.message) { + errorResult.message = err.message; + } + + if (err.stack) { + errorResult.stack = err.stack; + } + } + } + + return res.send(500, errorResult); +}); + //https.createServer({ // key: fs.readFileSync(config.http.key), // cert: fs.readFileSync(config.http.cert) From 14b34dc289c476ad21e8a819b42660f5c73ebd29 Mon Sep 17 00:00:00 2001 From: Carlos Brito Lage Date: Sun, 20 Oct 2013 15:18:43 -0700 Subject: [PATCH 2/3] =?UTF-8?q?No=20longer=20using=20fs.readFileSync=20?= =?UTF-8?q?=E0=B2=A0=5F=E0=B2=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/server.js b/server.js index 1b4a912..68f06e4 100644 --- a/server.js +++ b/server.js @@ -68,14 +68,22 @@ app.get('/oauth/callback', function (req, res) { res.render('oauthLogin'); }); -app.get('/manifest.webapp', function (req, res) { - res.set('Content-Type', 'application/x-web-app-manifest+json'); - res.send(fs.readFileSync('./public/x-manifest.webapp')); +app.get('/manifest.webapp', function (req, res, next) { + fs.readFile('./public/x-manifest.webapp', function doneReadingManifest(err, manifestContents) { + if (err) return next(err); + + res.set('Content-Type', 'application/x-web-app-manifest+json'); + res.send(manifestContents); + }); }); -app.get('/manifest.cache', function (req, res) { - res.set('Content-Type', 'text/cache-manifest'); - res.send(fs.readFileSync('./public/x-manifest.cache')); +app.get('/manifest.cache', function (req, res, next) { + fs.readFile('./public/x-manifest.cache', function doneReadingManifestCache(err, manifestCacheContents) { + if (err) return next(err); + + res.set('Content-Type', 'text/cache-manifest'); + res.send(manifestCacheContents); + }); }); // serves app on every other url From 775a8d9d18c756fb18f0016a0603fd20da1bb029 Mon Sep 17 00:00:00 2001 From: Carlos Brito Lage Date: Sun, 20 Oct 2013 15:44:22 -0700 Subject: [PATCH 3/3] Prettier errors --- server.js | 5 +++-- views/error.jade | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 views/error.jade diff --git a/server.js b/server.js index 68f06e4..581ee33 100644 --- a/server.js +++ b/server.js @@ -91,7 +91,7 @@ app.get('*', clientApp.html()); app.use(function handleError(err, req, res, next) { - var errorResult = {message: 'something bad happened'}; + var errorResult = {message: 'Something bad happened :('}; if (config.isDev) { if (err instanceof Error) { @@ -105,7 +105,8 @@ app.use(function handleError(err, req, res, next) { } } - return res.send(500, errorResult); + res.status(500); + res.render('error', errorResult); }); //https.createServer({ diff --git a/views/error.jade b/views/error.jade new file mode 100644 index 0000000..a1a72c4 --- /dev/null +++ b/views/error.jade @@ -0,0 +1,11 @@ +extends layout + +block content + section#errorBox.content.box + .head + h2 Oops, something went wrong! + + .content + p #{message} + if stack + pre #{stack} \ No newline at end of file