summaryrefslogtreecommitdiff
path: root/src/middleware
diff options
context:
space:
mode:
Diffstat (limited to 'src/middleware')
-rw-r--r--src/middleware/index.js16
-rw-r--r--src/middleware/logger.js24
-rw-r--r--src/middleware/not-found-handler.js9
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'));
+ };
+};