mirror of
https://github.com/typicode/json-server.git
synced 2025-07-28 12:43:18 +08:00
Allow middlewares to be set before json-server middlewares
This commit is contained in:
@ -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)
|
||||
```
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
29
src/defaults.js
Normal file
29
src/defaults.js
Normal file
@ -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
|
@ -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')
|
||||
}
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
@ -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() {
|
||||
|
Reference in New Issue
Block a user