diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-06 14:34:06 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-06 15:27:54 -0400 |
| commit | e3812a56bd699fc9ded7ac66d820c4a4ac845b23 (patch) | |
| tree | 50bee7ac02bcc5246e7d8e21462abf3881325b5d | |
| parent | 3f0f7108013767100a6a9cb15babe822b94f24f6 (diff) | |
Injecting Express stuff into OKServer as runtime dependency ya diggy
| -rw-r--r-- | app/index.js | 17 | ||||
| -rw-r--r-- | app/node_modules/okserver/index.js | 19 | ||||
| -rw-r--r-- | app/node_modules/okserver/package.json | 1 | ||||
| -rw-r--r-- | package.json | 5 |
4 files changed, 27 insertions, 15 deletions
diff --git a/app/index.js b/app/index.js index 82be55b..a639477 100644 --- a/app/index.js +++ b/app/index.js @@ -1,5 +1,6 @@ var path = require('path'); var format = require('util').format; +var express = require('express'); var OKQuery = require('okquery'); var OKView = require('okview'); var OKDB = require('okdb'); @@ -16,15 +17,23 @@ var OKSchema = require('okschema'); function OKCMS(options) { if (!(this instanceof OKCMS)) return new OKCMS(options); options = options || {}; - var root = this._root = options.root || 'www'; + + var app = express(); + app.enable('strict routing'); + + var root = this._root = options.root || 'public'; + var schemaConfig = options.schemas || {}; var resourceConfig = options.resources || []; var viewConfig = options.views || { '/': { template: 'index' } }; + + var templateProvider = this._templateProvider = + new OKTemplate({root: templateRoot}); + var db = new OKDB(options.db || 'fs'); - var templateCache = this._templateCache = new OKTemplate({root: root}); - var server = this._server = new OKServer({root: root}); + // Special query to get project wide meta data var meta = this._meta = { name: 'meta', get: function() { @@ -39,6 +48,8 @@ function OKCMS(options) { var views = this._views = this._createViews(viewConfig, db, meta, resources, templateProvider); var server = this._server = new OKServer({ + express: express, + app: app, views: views, root: root, adminRoot: adminRoot diff --git a/app/node_modules/okserver/index.js b/app/node_modules/okserver/index.js index d665d65..bb38e1f 100644 --- a/app/node_modules/okserver/index.js +++ b/app/node_modules/okserver/index.js @@ -5,25 +5,24 @@ var slash = require('express-slash'); function OKServer(options) { if (!(this instanceof OKServer)) return new OKServer(options); options = options || {}; + if (!options.express) + throw new Error('No Express provided to OKServer'); + if (!options.app) + throw new Error('No Express app provided to OKServer') if (!options.views) - throw new Error('No views provided to OKServer!'); + throw new Error('No views provided to OKServer'); var views = options.views; - var app = this._app = express(); - app.enable('strict routing'); - var router = express.Router({ - strict: app.get('strict routing') - }); - // Add views + var express = options.express; + var app = this._app = options.app; Object.keys(views) .sort(specificity) .forEach(function(route) { // We want to enforce trailing slashes for middleware routeNoSlash = route.charAt(route.length - 1) === '/' ? route.slice(0, route.length - 1) : route; - router.all(routeNoSlash, redirect(routeNoSlash)); - router.use(routeNoSlash + '/', views[route].middleware()); + app.all(routeNoSlash, redirect(routeNoSlash)); + app.use(routeNoSlash + '/', views[route].middleware()); }); - app.use(router); // This enforces trailing slashes for stuff that isn't middleware app.use(slash()); diff --git a/app/node_modules/okserver/package.json b/app/node_modules/okserver/package.json index 4bb5ce0..b90ce30 100644 --- a/app/node_modules/okserver/package.json +++ b/app/node_modules/okserver/package.json @@ -9,7 +9,6 @@ "author": "OKFocus", "license": "None", "dependencies": { - "express": "^4.12.3", "express-slash": "^2.0.1", "route-order": "^0.1.0" } diff --git a/package.json b/package.json index e03b21f..bb8a39b 100644 --- a/package.json +++ b/package.json @@ -7,5 +7,8 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OKFocus", - "license": "None" + "license": "None", + "dependencies": { + "express": "^4.12.3" + } } |
