diff --git a/README.md b/README.md index 578b0fd..5f21ccd 100644 --- a/README.md +++ b/README.md @@ -139,10 +139,11 @@ var object = { ] } -var router = jsonServer.router(object) // Express router -var server = jsonServer.create() // Express server +var server = jsonServer.create() // Express server + +server.use(jsonServer.defaults) // Default middlewares (logger, public, cors) +server.use(jsonServer.router(object)) // Express router -server.use(router) server.listen(3000) ``` diff --git a/bin/index.js b/bin/index.js index 1d7b43a..d4586db 100755 --- a/bin/index.js +++ b/bin/index.js @@ -64,8 +64,9 @@ function start(object, filename) { } else { var router = jsonServer.router(object) } - var server = jsonServer.create() + var server = jsonServer.create() + server.use(jsonServer.defaults) server.use(router) server.listen(port, argv.host) } diff --git a/src/defaults.js b/src/defaults.js new file mode 100644 index 0000000..3c3b326 --- /dev/null +++ b/src/defaults.js @@ -0,0 +1,29 @@ +var fs = require('fs') +var logger = require('morgan') +var cors = require('cors') +var serveStatic = require('serve-static') +var errorhandler = require('errorhandler') + +var arr = [] + +// Logger +arr.push(logger('dev', { + skip: function(req, res) { return req.path === '/favicon.ico' } +})) + +// Serve static files +if (fs.existsSync(process.cwd() + '/public')) { + arr.push(serveStatic(process.cwd() + '/public')); +} else { + arr.push(serveStatic(__dirname + '/public')); +} + +// CORS +arr.push(cors({ origin: true, credentials: true })) + +if (process.env.NODE_ENV === 'development') { + // only use in development + arr.push(errorhandler()) +} + +module.exports = arr \ No newline at end of file diff --git a/src/index.js b/src/index.js index 9e79b50..5ca2b8f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,11 @@ +var express = require('express') + module.exports = { - create: require('./server'), + create: function () { + var server = express() + server.set('json spaces', 2) + return server + }, + defaults: require('./defaults'), router: require('./router') } \ No newline at end of file diff --git a/src/router.js b/src/router.js index 1e7ff52..3308c56 100644 --- a/src/router.js +++ b/src/router.js @@ -176,6 +176,7 @@ module.exports = function(source) { // Remove dependents documents var removable = utils.getRemovable(db.object) + console.log(removable) _(removable).each(function(item) { db(item.name).remove(item.id) diff --git a/src/server.js b/src/server.js deleted file mode 100644 index 160a770..0000000 --- a/src/server.js +++ /dev/null @@ -1,36 +0,0 @@ -var fs = require('fs') -var http = require('http') -var express = require('express') -var logger = require('morgan') -var cors = require('cors') -var serveStatic = require('serve-static') -var errorhandler = require('errorhandler') - -module.exports = function() { - var server = express() - - // Logger - server.use(logger('dev', { - skip: function(req, res) { return req.path === '/favicon.ico' } - })) - - // Beautify JSON - server.set('json spaces', 2) - - // Serve static files - if (fs.existsSync(process.cwd() + '/public')) { - server.use(serveStatic(process.cwd() + '/public')); - } else { - server.use(serveStatic(__dirname + '/public')); - } - - // CORS - server.use(cors({ origin: true, credentials: true })) - - if (process.env.NODE_ENV === 'development') { - // only use in development - server.use(errorhandler()) - } - - return server -} \ No newline at end of file diff --git a/test/index.js b/test/index.js index 1aad739..beccde4 100644 --- a/test/index.js +++ b/test/index.js @@ -34,8 +34,10 @@ describe('Server', function() { {id: 'abcd-1234', url: 'http://example.com', postId: 1} ] + server = jsonServer.create() router = jsonServer.router(db) - server = jsonServer.create().use(router) + server.use(jsonServer.defaults) + server.use(router) }) describe('GET /db', function() {