diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-06 19:08:07 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-06 19:08:07 -0400 |
| commit | 21167ce88ea4ad594d213d3a49115f0ebbaed745 (patch) | |
| tree | d337a8aa37223f4cc57d9ccbee7726914a530917 /app/node_modules/okserver/index.js | |
| parent | 50c06cc74b025e98ebccc90d389d42354f2b2d63 (diff) | |
Fix god forsaken trailing slashed issue
Diffstat (limited to 'app/node_modules/okserver/index.js')
| -rw-r--r-- | app/node_modules/okserver/index.js | 20 |
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()); /** |
