Skip to content

Commit ca867e8

Browse files
committed
Allow middlewares to be set before json-server middlewares
1 parent 3babbb7 commit ca867e8

File tree

7 files changed

+47
-42
lines changed

7 files changed

+47
-42
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,11 @@ var object = {
139139
]
140140
}
141141

142-
var router = jsonServer.router(object) // Express router
143-
var server = jsonServer.create() // Express server
142+
var server = jsonServer.create() // Express server
143+
144+
server.use(jsonServer.defaults) // Default middlewares (logger, public, cors)
145+
server.use(jsonServer.router(object)) // Express router
144146

145-
server.use(router)
146147
server.listen(3000)
147148
```
148149

bin/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ function start(object, filename) {
6464
} else {
6565
var router = jsonServer.router(object)
6666
}
67-
var server = jsonServer.create()
6867

68+
var server = jsonServer.create()
69+
server.use(jsonServer.defaults)
6970
server.use(router)
7071
server.listen(port, argv.host)
7172
}

src/defaults.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
var fs = require('fs')
2+
var logger = require('morgan')
3+
var cors = require('cors')
4+
var serveStatic = require('serve-static')
5+
var errorhandler = require('errorhandler')
6+
7+
var arr = []
8+
9+
// Logger
10+
arr.push(logger('dev', {
11+
skip: function(req, res) { return req.path === '/favicon.ico' }
12+
}))
13+
14+
// Serve static files
15+
if (fs.existsSync(process.cwd() + '/public')) {
16+
arr.push(serveStatic(process.cwd() + '/public'));
17+
} else {
18+
arr.push(serveStatic(__dirname + '/public'));
19+
}
20+
21+
// CORS
22+
arr.push(cors({ origin: true, credentials: true }))
23+
24+
if (process.env.NODE_ENV === 'development') {
25+
// only use in development
26+
arr.push(errorhandler())
27+
}
28+
29+
module.exports = arr

src/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1+
var express = require('express')
2+
13
module.exports = {
2-
create: require('./server'),
4+
create: function () {
5+
var server = express()
6+
server.set('json spaces', 2)
7+
return server
8+
},
9+
defaults: require('./defaults'),
310
router: require('./router')
411
}

src/router.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ module.exports = function(source) {
176176

177177
// Remove dependents documents
178178
var removable = utils.getRemovable(db.object)
179+
console.log(removable)
179180

180181
_(removable).each(function(item) {
181182
db(item.name).remove(item.id)

src/server.js

Lines changed: 0 additions & 36 deletions
This file was deleted.

test/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@ describe('Server', function() {
3434
{id: 'abcd-1234', url: 'http://example.com', postId: 1}
3535
]
3636

37+
server = jsonServer.create()
3738
router = jsonServer.router(db)
38-
server = jsonServer.create().use(router)
39+
server.use(jsonServer.defaults)
40+
server.use(router)
3941
})
4042

4143
describe('GET /db', function() {

0 commit comments

Comments
 (0)