Skip to content

Commit 34f6fd3

Browse files
committed
Simplify rewriter
1 parent cd71021 commit 34f6fd3

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

src/rewriter.js

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,27 @@ var express = require('express')
33
module.exports = function (routes) {
44
var router = express.Router()
55

6-
for (var route in routes) {
7-
router.all(route, function (req, res, next) {
8-
var target = routes[route]
9-
for (var param in req.params) {
10-
target = target.replace(':' + param, req.params[param])
11-
}
12-
console.log(target)
13-
req.url = target
14-
next()
15-
})
16-
}
6+
Object.keys(routes).forEach(function (route) {
7+
8+
if (route.indexOf(':') !== -1) {
9+
router.all(route, function (req, res, next) {
10+
// Rewrite target url using params
11+
var target = routes[route]
12+
for (var param in req.params) {
13+
target = target.replace(':' + param, req.params[param])
14+
}
15+
req.url = target
16+
next()
17+
})
18+
} else {
19+
router.all(route + '*', function (req, res, next) {
20+
// Rewrite url by replacing prefix
21+
req.url = req.url.replace(route, routes[route])
22+
next()
23+
})
24+
}
25+
26+
})
1727

1828
return router
1929
}

test/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ describe('Server', function () {
4040
router = jsonServer.router(db)
4141
server.use(jsonServer.defaults)
4242
server.use(jsonServer.rewriter({
43-
'/api/:resource/:id': '/:resource/:id',
43+
'/api/': '/',
4444
'/blog/posts/:id/show': '/posts/:id'
4545
}))
4646
server.use(router)
@@ -370,14 +370,14 @@ describe('Server', function () {
370370

371371
describe('Rewriter', function () {
372372

373-
it('should rewrite URL (1)', function (done) {
373+
it('should rewrite using prefix', function (done) {
374374
request(server)
375375
.get('/api/posts/1')
376376
.expect(db.posts[0])
377377
.end(done)
378378
})
379379

380-
it('should rewrite URL (2)', function (done) {
380+
it('should rewrite using params', function (done) {
381381
request(server)
382382
.get('/blog/posts/1/show')
383383
.expect(db.posts[0])

0 commit comments

Comments
 (0)