summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/index.js17
-rw-r--r--app/node_modules/okserver/index.js19
-rw-r--r--app/node_modules/okserver/package.json1
-rw-r--r--package.json5
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"
+ }
}