diff options
Diffstat (limited to 'app')
| -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 |
3 files changed, 23 insertions, 14 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" } |
