Skip to content

Commit dcc4eaa

Browse files
committed
Change req.query to a getter
1 parent 8c6f9c4 commit dcc4eaa

File tree

6 files changed

+26
-45
lines changed

6 files changed

+26
-45
lines changed

History.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
- `res.json(obj, status)` signature - use `res.json(status, obj)`
66
- `res.jsonp(obj, status)` signature - use `res.jsonp(status, obj)`
77
- `res.send(body, status)` signature - use `res.send(status, body)`
8+
- `express.query` middleware
89
* change:
910
- `req.host` now returns host (`hostname:port`) - use `req.hostname` for only hostname
11+
- `req.query` is now a getter instead of a plain property
1012

1113
4.10.1 / 2014-10-28
1214
===================

lib/application.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ var flatten = require('./utils').flatten;
77
var Router = require('./router');
88
var methods = require('methods');
99
var middleware = require('./middleware/init');
10-
var query = require('./middleware/query');
1110
var debug = require('debug')('express:application');
1211
var View = require('./view');
1312
var http = require('http');
@@ -102,7 +101,6 @@ app.lazyrouter = function() {
102101
strict: this.enabled('strict routing')
103102
});
104103

105-
this._router.use(query(this.get('query parser fn')));
106104
this._router.use(middleware.init(this));
107105
}
108106
};

lib/express.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ exports.Router = Router;
5656
* Expose middleware
5757
*/
5858

59-
exports.query = require('./middleware/query');
6059
exports.static = require('serve-static');
6160

6261
/**
@@ -83,6 +82,7 @@ exports.static = require('serve-static');
8382
'limit',
8483
'multipart',
8584
'staticCache',
85+
'query',
8686
].forEach(function (name) {
8787
Object.defineProperty(exports, name, {
8888
get: function () {

lib/middleware/query.js

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

lib/request.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,29 @@ req.range = function(size){
183183
return parseRange(size, range);
184184
};
185185

186+
/**
187+
* Parse the query string of `req.url`.
188+
*
189+
* This uses the "query parser" setting to parse the raw
190+
* string into an object.
191+
*
192+
* @return {String}
193+
* @api public
194+
*/
195+
196+
defineGetter(req, 'query', function query(){
197+
var queryparse = this.app.get('query parser fn');
198+
199+
if (!queryparse) {
200+
// parsing is disabled
201+
return Object.create(null);
202+
}
203+
204+
var querystring = parse(this).query;
205+
206+
return queryparse(querystring);
207+
});
208+
186209
/**
187210
* Return the value of param `name` when present or `defaultValue`.
188211
*

lib/utils.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,6 @@ exports.compileQueryParser = function compileQueryParser(val) {
205205
fn = querystring.parse;
206206
break;
207207
case false:
208-
fn = newObject;
209208
break;
210209
case 'extended':
211210
fn = qs.parse;
@@ -270,14 +269,3 @@ exports.setCharset = function(type, charset){
270269
// format type
271270
return typer.format(parsed);
272271
};
273-
274-
/**
275-
* Return new empty objet.
276-
*
277-
* @return {Object}
278-
* @api private
279-
*/
280-
281-
function newObject() {
282-
return {};
283-
}

0 commit comments

Comments
 (0)