Skip to content

Commit 80e0df1

Browse files
committed
Refactor
1 parent b6b4a41 commit 80e0df1

File tree

4 files changed

+45
-39
lines changed

4 files changed

+45
-39
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"errorhandler": "^1.2.0",
1515
"express": "^4.9.5",
1616
"got": "^1.2.2",
17-
"lowdb": "^0.7.0",
17+
"lowdb": "^0.7.1",
1818
"method-override": "^2.1.2",
1919
"morgan": "^1.3.1",
2020
"node-uuid": "^1.4.2",

src/index.js

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
1-
var fs = require('fs')
2-
var path = require('path')
1+
var fs = require('fs')
2+
var path = require('path')
33

44
// LowDB
5-
var low = require('lowdb')
6-
var _db = require('underscore-db')
7-
var _inflections = require('underscore.inflections')
8-
9-
low.mixin('_db')
10-
low.mixin('_inflections')
5+
var low = require('lowdb')
6+
low.mixin(require('underscore-db'))
7+
low.mixin(require('underscore.inflections'))
118

129
// Express
13-
var http = require('http')
14-
var express = require('express')
15-
var logger = require('morgan')
16-
var cors = require('cors')
10+
var http = require('http')
11+
var express = require('express')
12+
var logger = require('morgan')
13+
var cors = require('cors')
1714
var methodOverride = require('method-override')
18-
var bodyParser = require('body-parser')
19-
var serveStatic = require('serve-static')
20-
var errorhandler = require('errorhandler')
15+
var bodyParser = require('body-parser')
16+
var serveStatic = require('serve-static')
17+
var errorhandler = require('errorhandler')
2118

2219
// json-server
23-
var utils = require('./utils')
24-
var createRoutes = require('./create-routes')
20+
var utils = require('./utils')
21+
var getRoutes = require('./routes')
2522

2623
low.mixin({ createId: utils.createId })
2724

2825
module.exports = function(object, filename) {
2926
var server = express()
30-
var routes = createRoutes(object, filename)
27+
28+
// Create database
29+
if (filename) {
30+
var db = low(filename)
31+
} else {
32+
var db = low()
33+
db.object = object
34+
}
35+
36+
// Expose db
37+
server.db = db
38+
39+
// Get routes
40+
var routes = getRoutes(db)
3141

3242
// Don't use logger if json-server is mounted
3343
if (!module.parent) {
@@ -39,12 +49,14 @@ module.exports = function(object, filename) {
3949
server.use(bodyParser.urlencoded({ extended: false }))
4050
server.use(methodOverride())
4151

52+
// Serve static files
4253
if (fs.existsSync(process.cwd() + '/public')) {
4354
server.use(serveStatic(process.cwd() + '/public'));
4455
} else {
4556
server.use(serveStatic(__dirname + '/public'));
4657
}
4758

59+
// CORS
4860
server.use(cors({ origin: true, credentials: true }))
4961

5062
server.get('/db', routes.showDatabase)

src/create-routes.js renamed to src/routes.js

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
11
var _ = require('underscore')
2-
var low = require('lowdb')
3-
var _db = require('underscore-db')
4-
var _inflections = require('underscore.inflections')
52
var utils = require('./utils')
63

7-
low.mixin(_db)
8-
low.mixin(_inflections)
9-
10-
module.exports = function(object, filename) {
11-
if (filename) {
12-
var db = low(filename)
13-
} else {
14-
var db = low()
15-
db.object = object
16-
}
17-
4+
module.exports = function(db) {
185
return {
196
// GET /db
207
showDatabase: function(req, res, next) {
@@ -85,6 +72,7 @@ module.exports = function(object, filename) {
8572
}
8673
}
8774

75+
// Sort
8876
if(_sort) {
8977
_order = _order || 'ASC'
9078

test/index.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -273,18 +273,24 @@ describe('Server', function() {
273273
request(server)
274274
.get('/')
275275
.expect(/You're successfully running JSON Server/)
276-
.expect(200, done);
277-
});
278-
});
276+
.expect(200, done)
277+
})
278+
})
279279

280280
describe('GET /stylesheets/style.css', function() {
281281
it('should respond with css', function(done) {
282282
request(server)
283283
.get('/stylesheets/style.css')
284284
.expect('Content-Type', /css/)
285-
.expect(200, done);
286-
});
287-
});
285+
.expect(200, done)
286+
})
287+
})
288+
289+
})
288290

291+
describe('Database #object', function() {
292+
it('should be accessible', function() {
293+
assert(server.db.object)
294+
})
289295
})
290296
})

0 commit comments

Comments
 (0)