From a3d97a45c683c1454b467e569c7d27571ea12c51 Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Sat, 25 Aug 2018 15:13:55 -0700 Subject: [PATCH] Use Sentry error reporting --- modules/createServer.js | 38 ++++++++++++++++++++++++++++---------- server.js | 9 --------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/modules/createServer.js b/modules/createServer.js index 1838f16..6e63eae 100644 --- a/modules/createServer.js +++ b/modules/createServer.js @@ -1,6 +1,7 @@ const http = require("http"); const express = require("express"); const morgan = require("morgan"); +const raven = require("raven"); const staticAssets = require("./middleware/staticAssets"); const createRouter = require("./createRouter"); @@ -10,22 +11,35 @@ morgan.token("fwd", req => { return fwd ? fwd.replace(/\s/g, "") : "-"; }); -function errorHandler(err, req, res, next) { - console.error(err.stack); - - res - .status(500) - .type("text") - .send("Internal Server Error"); - - next(err); +if (process.env.SENTRY_DSN) { + raven + .config(process.env.SENTRY_DSN, { + release: process.env.HEROKU_RELEASE_VERSION, + autoBreadcrumbs: true + }) + .install(); } +// function errorHandler(err, req, res, next) { +// console.error(err.stack); + +// res +// .status(500) +// .type("text") +// .send("Internal Server Error"); + +// next(err); +// } + function createServer(publicDir, statsFile) { const app = express(); app.disable("x-powered-by"); + if (process.env.SENTRY_DSN) { + app.use(raven.requestHandler()); + } + if (process.env.NODE_ENV !== "test") { app.use( morgan( @@ -36,7 +50,7 @@ function createServer(publicDir, statsFile) { ); } - app.use(errorHandler); + // app.use(errorHandler); if (publicDir) { app.use(express.static(publicDir, { maxAge: "365d" })); @@ -48,6 +62,10 @@ function createServer(publicDir, statsFile) { app.use(createRouter()); + if (process.env.SENTRY_DSN) { + app.use(raven.errorHandler()); + } + const server = http.createServer(app); // Heroku dynos automatically timeout after 30s. Set our diff --git a/server.js b/server.js index 486cdeb..25f1f0b 100644 --- a/server.js +++ b/server.js @@ -1,6 +1,5 @@ const path = require("path"); const throng = require("throng"); -const raven = require("raven"); const createServer = require("./modules/createServer"); const createDevServer = require("./modules/createDevServer"); @@ -8,14 +7,6 @@ const serverConfig = require("./modules/serverConfig"); require("./modules/clientRuntime"); -if (process.env.SENTRY_DSN) { - raven - .config(process.env.SENTRY_DSN, { - release: process.env.HEROKU_RELEASE_VERSION - }) - .install(); -} - function startServer(id) { const server = process.env.NODE_ENV === "production"