mirror of
https://github.com/typicode/json-server.git
synced 2025-07-30 13:42:11 +08:00
Simplify rewriter
This commit is contained in:
@ -3,17 +3,27 @@ var express = require('express')
|
||||
module.exports = function (routes) {
|
||||
var router = express.Router()
|
||||
|
||||
for (var route in routes) {
|
||||
Object.keys(routes).forEach(function (route) {
|
||||
|
||||
if (route.indexOf(':') !== -1) {
|
||||
router.all(route, function (req, res, next) {
|
||||
// Rewrite target url using params
|
||||
var target = routes[route]
|
||||
for (var param in req.params) {
|
||||
target = target.replace(':' + param, req.params[param])
|
||||
}
|
||||
console.log(target)
|
||||
req.url = target
|
||||
next()
|
||||
})
|
||||
} else {
|
||||
router.all(route + '*', function (req, res, next) {
|
||||
// Rewrite url by replacing prefix
|
||||
req.url = req.url.replace(route, routes[route])
|
||||
next()
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
return router
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ describe('Server', function () {
|
||||
router = jsonServer.router(db)
|
||||
server.use(jsonServer.defaults)
|
||||
server.use(jsonServer.rewriter({
|
||||
'/api/:resource/:id': '/:resource/:id',
|
||||
'/api/': '/',
|
||||
'/blog/posts/:id/show': '/posts/:id'
|
||||
}))
|
||||
server.use(router)
|
||||
@ -370,14 +370,14 @@ describe('Server', function () {
|
||||
|
||||
describe('Rewriter', function () {
|
||||
|
||||
it('should rewrite URL (1)', function (done) {
|
||||
it('should rewrite using prefix', function (done) {
|
||||
request(server)
|
||||
.get('/api/posts/1')
|
||||
.expect(db.posts[0])
|
||||
.end(done)
|
||||
})
|
||||
|
||||
it('should rewrite URL (2)', function (done) {
|
||||
it('should rewrite using params', function (done) {
|
||||
request(server)
|
||||
.get('/blog/posts/1/show')
|
||||
.expect(db.posts[0])
|
||||
|
Reference in New Issue
Block a user