diff --git a/routes.js b/routes.js index c168ebe..6667e5d 100644 --- a/routes.js +++ b/routes.js @@ -1,5 +1,3 @@ -var ShareJS = require('share'); -var mongoData = require('./mongodata.js'); var responder = require('./responder.js'); var preview = require('./preview.js'); var importer = require('./importer.js'); @@ -7,19 +5,8 @@ var importer = require('./importer.js'); var path = require('path'); var fs = require('fs'); -module.exports = function (app, db, config) { +module.exports = function (app, mongoDataInstance, model, config) { - // share wraps express app with http.Server - if (config - && config.share - && config.share.db - && config.share.db.type == 'mongo') { - config.share.db.client = db; - } - var server = ShareJS.server.attach(app, config.share); - var model = app.model; - - var mongoDataInstance = mongoData(db, model, config); var route; route = config.api.data + '/:collection/:guid/:attribute.:ext(css|less|js|html)'; app.get(route, @@ -357,5 +344,5 @@ module.exports = function (app, db, config) { }); }); - return server; + return app; }; diff --git a/server.js b/server.js index c321521..091c431 100644 --- a/server.js +++ b/server.js @@ -2,6 +2,8 @@ var connect = require('connect'); var express = require('express'); var MongoClient = require('mongodb').MongoClient; var addRoutes = require('./routes.js'); +var addShare = require('./share.js'); +var mongoData = require('./mongodata.js'); process.title = "Prototyper"; @@ -71,7 +73,14 @@ MongoClient.connect(config.mongo.server, config.mongo.options, function connecti config.errors && console.log('ERR connection to database', err); return process.exit(1); } - var server = addRoutes(app, db, config); + var share = addShare(app, db, config); + var model = share.model; + var server = share.server; + + var mongoDataInstance = mongoData(db, model, config); + + app = addRoutes(app, mongoDataInstance, model, config); + server.on('error', function (err) { config.error && console.log('server error',err); }); diff --git a/share.js b/share.js new file mode 100644 index 0000000..d4be112 --- /dev/null +++ b/share.js @@ -0,0 +1,18 @@ +var ShareJS = require('share'); + +module.exports = function( app, db, config) { + // share wraps express app with http.Server + if (config + && config.share + && config.share.db + && config.share.db.type == 'mongo') { + config.share.db.client = db; + } + var server = ShareJS.server.attach(app, config.share); + var model = app.model; + + return { + server: server, + model: model + }; +};