Browse Source

Added http error handler to app

hakumizuki 4 years ago
parent
commit
8f9bbb68f4
2 changed files with 22 additions and 0 deletions
  1. 4 0
      src/server/crowi/express-init.js
  2. 18 0
      src/server/middlewares/http-error-handler.js

+ 4 - 0
src/server/crowi/express-init.js

@@ -1,3 +1,4 @@
+const httpErrorHandler = require('../middlewares/http-error-handler');
 
 
 module.exports = function(crowi, app) {
@@ -111,6 +112,9 @@ module.exports = function(crowi, app) {
     sessionMiddleware(req, res, next);
   });
 
+  // http-error-handler
+  app.use(httpErrorHandler);
+
   // passport
   debug('initialize Passport');
   app.use(passport.initialize());

+ 18 - 0
src/server/middlewares/http-error-handler.js

@@ -0,0 +1,18 @@
+
+const { isHttpError } = require('http-errors');
+
+module.exports = (err, req, res, next) => {
+  // handle if the err is a HttpError instance
+  if (isHttpError(err)) {
+    const httpError = err;
+
+    return res
+      .status(httpError.status)
+      .send({
+        status: httpError.status,
+        message: httpError.message,
+      });
+  }
+
+  next(err);
+};