Skip to content

Commit 82601d8

Browse files
committed
Change req.query to a getter
1 parent 91a084b commit 82601d8

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.7.0 / 2014-07-25
1214
==================

lib/application.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ var mixin = require('utils-merge');
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');
@@ -100,7 +99,6 @@ app.lazyrouter = function() {
10099
strict: this.enabled('strict routing')
101100
});
102101

103-
this._router.use(query(this.get('query parser fn')));
104102
this._router.use(middleware.init(this));
105103
}
106104
};

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
@@ -182,6 +182,29 @@ req.range = function(size){
182182
return parseRange(size, range);
183183
};
184184

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

lib/utils.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,6 @@ exports.compileQueryParser = function compileQueryParser(val) {
224224
fn = querystring.parse;
225225
break;
226226
case false:
227-
fn = newObject;
228227
break;
229228
case 'extended':
230229
fn = qs.parse;
@@ -289,14 +288,3 @@ exports.setCharset = function(type, charset){
289288
// format type
290289
return typer.format(parsed);
291290
};
292-
293-
/**
294-
* Return new empty objet.
295-
*
296-
* @return {Object}
297-
* @api private
298-
*/
299-
300-
function newObject() {
301-
return {};
302-
}

0 commit comments

Comments
 (0)