diff options
Diffstat (limited to 'src/middleware')
| -rw-r--r-- | src/middleware/index.js | 16 | ||||
| -rw-r--r-- | src/middleware/logger.js | 24 | ||||
| -rw-r--r-- | src/middleware/not-found-handler.js | 9 |
3 files changed, 49 insertions, 0 deletions
diff --git a/src/middleware/index.js b/src/middleware/index.js new file mode 100644 index 0000000..6d655fa --- /dev/null +++ b/src/middleware/index.js @@ -0,0 +1,16 @@ +'use strict'; + +const handler = require('feathers-errors/handler'); +const notFound = require('./not-found-handler'); +const logger = require('./logger'); + +module.exports = function() { + // Add your custom middleware here. Remember, that + // just like Express the order matters, so error + // handling middleware should go last. + const app = this; + + app.use(notFound()); + app.use(logger(app)); + app.use(handler()); +}; diff --git a/src/middleware/logger.js b/src/middleware/logger.js new file mode 100644 index 0000000..22ea137 --- /dev/null +++ b/src/middleware/logger.js @@ -0,0 +1,24 @@ +'use strict'; + +const winston = require('winston'); + +module.exports = function(app) { + // Add a logger to our app object for convenience + app.logger = winston; + + return function(error, req, res, next) { + if (error) { + const message = `${error.code ? `(${error.code}) ` : '' }Route: ${req.url} - ${error.message}`; + + if (error.code === 404) { + winston.info(message); + } + else { + winston.error(message); + winston.info(error.stack); + } + } + + next(error); + }; +}; diff --git a/src/middleware/not-found-handler.js b/src/middleware/not-found-handler.js new file mode 100644 index 0000000..cb0ee51 --- /dev/null +++ b/src/middleware/not-found-handler.js @@ -0,0 +1,9 @@ +'use strict'; + +const errors = require('feathers-errors'); + +module.exports = function() { + return function(req, res, next) { + next(new errors.NotFound('Page not found')); + }; +}; |
