summaryrefslogtreecommitdiff
path: root/app/node_modules/okserver/index.js
diff options
context:
space:
mode:
authorSean Fridman <fridman@mail.sfsu.edu>2015-04-06 19:08:07 -0400
committerSean Fridman <fridman@mail.sfsu.edu>2015-04-06 19:08:07 -0400
commit21167ce88ea4ad594d213d3a49115f0ebbaed745 (patch)
treed337a8aa37223f4cc57d9ccbee7726914a530917 /app/node_modules/okserver/index.js
parent50c06cc74b025e98ebccc90d389d42354f2b2d63 (diff)
Fix god forsaken trailing slashed issue
Diffstat (limited to 'app/node_modules/okserver/index.js')
-rw-r--r--app/node_modules/okserver/index.js20
1 files changed, 14 insertions, 6 deletions
diff --git a/app/node_modules/okserver/index.js b/app/node_modules/okserver/index.js
index a3219fa..6c19a9b 100644
--- a/app/node_modules/okserver/index.js
+++ b/app/node_modules/okserver/index.js
@@ -13,16 +13,24 @@ function OKServer(options) {
var views = options.views;
var express = options.express;
var app = this._app = options.app;
+ var router = express.Router({
+ strict: app.get('strict routing')
+ });
Object.keys(views)
+ // Sort such that more general routes are matched last
.sort(specificity)
+ // Add the views
.forEach(function(route) {
- // We want to enforce trailing slashes for middleware
- routeNoSlash = route.charAt(route.length - 1) === '/' ?
- route.slice(0, route.length - 1) : route;
- app.all(routeNoSlash, redirect(routeNoSlash));
- app.use(routeNoSlash + '/', views[route].middleware());
+ var view = views[route];
+ var mount = view.mount;
+ if (!mount)
+ throw Error('View doesn\'t specify a mount point');
+ var handler = view.middleware();
+ if (!handler)
+ throw new Error('View doesn\'t provide middleware');
+ router[mount](route, handler);
});
- // This enforces trailing slashes for stuff that isn't middleware
+ app.use(router);
app.use(slash());
/**