diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-09-02 13:24:55 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-09-02 13:24:55 -0400 |
| commit | 8def9579f2a78e80652d1e5e6f1eda510ae9a5dd (patch) | |
| tree | c56d664f04d55f0d75c6d4f5e2d6fc567054498d /app/node_modules/okserver/index.js | |
| parent | 4ed81fa59119cee66b0413c5662639ec81fea4dc (diff) | |
| parent | 5052d51aa4c55eabc736b3c76a783db2f5208289 (diff) | |
merge changes from twohustlers
Diffstat (limited to 'app/node_modules/okserver/index.js')
| -rw-r--r-- | app/node_modules/okserver/index.js | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/app/node_modules/okserver/index.js b/app/node_modules/okserver/index.js index 1645eaa..a89676f 100644 --- a/app/node_modules/okserver/index.js +++ b/app/node_modules/okserver/index.js @@ -16,6 +16,8 @@ function OKServer(options) { throw new Error('No admin root directory provided to OKServer'); if (!options.adminPath) throw new Error('No admin path provided to OKServer'); + if (!options.errorHandler) + throw new Error('No error handler provided to OKServer'); var root = options.root; var adminRoot = options.adminRoot; var adminPath = options.adminPath; @@ -25,6 +27,7 @@ function OKServer(options) { var router = express.Router({ strict: app.get('strict routing') }); + var error = options.errorHandler; var services = options.services || {}; Object.keys(views) // Sort such that more general routes are matched last @@ -49,11 +52,8 @@ function OKServer(options) { * other middleware. */ - // Intercept favicon requests and 404 for now - app.use('/favicon.ico', function(req, res) { - res.status(404) - return res.send(''); - }); + // Disable x-powered-by express header + app.disable('x-powered-by') // Serve user static files app.use(express.static(root)); // Serve admin interface static files @@ -61,22 +61,16 @@ function OKServer(options) { // Application router app.use(router); // Add services - if (services.image) { - app.use('/_services/image', services.image.middleware()); - } + Object.keys(services).forEach(function(key){ + app.use('/_services/' + key, services[key].middleware()); + }) // Make sure this lady is last. Checks whether the desired // route has a trailing-slash counterpart and redirects there app.use(slash()); - - /** - * Create a handler which redirect all requests to - * the same route with a trailing slash appended - */ - function redirect(routeNoSlash) { - return function(req, res) { - res.redirect(301, routeNoSlash + '/'); - } - } + // Otherwise it's a 404 + app.use(function(req, res) { + error(req, res, 404)(new Error('No matching route')); + }); } OKServer.prototype.listen = function listen(port) { |
