aboutsummaryrefslogtreecommitdiff
path: root/lib/middleware
diff options
context:
space:
mode:
Diffstat (limited to 'lib/middleware')
-rw-r--r--lib/middleware/handle_errors.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/middleware/handle_errors.js b/lib/middleware/handle_errors.js
new file mode 100644
index 0000000..f969676
--- /dev/null
+++ b/lib/middleware/handle_errors.js
@@ -0,0 +1,25 @@
+/**
+ * Middleware to create responses for unhandled errors.
+ */
+export default async function HandleErrors(next) {
+
+ try {
+ await next;
+ }
+ catch (err) {
+ this.status = err.status || 500;
+
+ const response = {
+ error: err.message,
+ status: this.status
+ };
+
+ if (response.status === 401) {
+ response.error === 'Protected resource, use Authorization header to get access';
+ }
+
+ this.body = response;
+
+ this.app.emit('error', err, this);
+ }
+}