Skip to content

Commit 645a3ab

Browse files
committed
Ignore unknown query parameters
1 parent 9a719cd commit 645a3ab

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Change Log
22

3+
## [Unreleased][unreleased]
4+
5+
### Changed
6+
7+
* Automatically ignore unknown query parameters
8+
9+
```bash
10+
# Before
11+
GET /products?author=typicode&foo=bar # []
12+
# After
13+
GET /products?author=typicode&foo=bar # [{...}, {...}]
14+
```
15+
316
## [0.7.28][2015-09-09]
417

518
```bash

src/server/router/plural.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,23 @@ module.exports = function (db, name) {
6363
delete req.query._embed
6464
delete req.query._expand
6565

66+
// Automatically delete query parameters that can't be found
67+
// in the database
68+
Object.keys(req.query).forEach(function (query) {
69+
var arr = db(name).value()
70+
for (var i in arr) {
71+
if (
72+
_.has(arr[i], query) ||
73+
query === 'callback' ||
74+
query === '_' ||
75+
query.indexOf('_lte') !== -1 ||
76+
query.indexOf('_gte') !== -1
77+
) return
78+
}
79+
delete req.query[query]
80+
})
81+
82+
6683
if (q) {
6784

6885
// Full-text search

test/server/plural.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ describe('Server', function () {
118118
.expect(new RegExp(db.comments[0].body)) // JSONP returns text
119119
.expect(200, done)
120120
})
121+
122+
it('should ignore unknown query parameters', function (done) {
123+
request(server)
124+
.get('/comments?foo=1&bar=2')
125+
.expect('Content-Type', /json/)
126+
.expect(db.comments)
127+
.expect(200, done)
128+
})
121129
})
122130

123131
describe('GET /:resource?q=', function () {

0 commit comments

Comments
 (0)