return same object from request.query
Before this change, calling request.query when there was no querystring resulted in a new object created and returned each time. If the resulting object was ever changed, accessing request.query would not reflect it and cause weird bugs.
This commit is contained in:
parent
eb7277c95c
commit
6392ee0407
2 changed files with 7 additions and 2 deletions
|
@ -131,8 +131,6 @@ module.exports = {
|
|||
|
||||
get query() {
|
||||
var str = this.querystring;
|
||||
if (!str) return {};
|
||||
|
||||
var c = this._querycache = this._querycache || {};
|
||||
return c[str] || (c[str] = qs.parse(str));
|
||||
},
|
||||
|
|
|
@ -7,6 +7,13 @@ describe('ctx.query', function(){
|
|||
var ctx = context({ url: '/' });
|
||||
ctx.query.should.eql({});
|
||||
})
|
||||
|
||||
it('should return the same object each time it\'s accessed', function(done) {
|
||||
var ctx = context({ url: '/' });
|
||||
ctx.query.a = '2';
|
||||
ctx.query.a.should.equal('2');
|
||||
done();
|
||||
});
|
||||
})
|
||||
|
||||
it('should return a parsed query-string', function(){
|
||||
|
|
Loading…
Reference in a new issue