url: make query() consistent
Match the behavior of the slow path by setting url.query to an empty object when the url contains no query, but query parsing is requested. Also add a test for this case, and update the documents to clearly reflect this behavior. Fixes: https://github.com/joyent/node/issues/8332 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
ac2857b12c
commit
b705b73e46
@ -69,9 +69,10 @@ The following methods are provided by the URL module:
|
|||||||
|
|
||||||
Take a URL string, and return an object.
|
Take a URL string, and return an object.
|
||||||
|
|
||||||
Pass `true` as the second argument to also parse
|
Pass `true` as the second argument to also parse the query string using the
|
||||||
the query string using the `querystring` module.
|
`querystring` module. If `true` then the `query` property will always be
|
||||||
Defaults to `false`.
|
assigned an object, and the `search` property will always be a (possibly
|
||||||
|
empty) string. Defaults to `false`.
|
||||||
|
|
||||||
Pass `true` as the third argument to treat `//foo/bar` as
|
Pass `true` as the third argument to treat `//foo/bar` as
|
||||||
`{ host: 'foo', pathname: '/bar' }` rather than
|
`{ host: 'foo', pathname: '/bar' }` rather than
|
||||||
|
@ -136,6 +136,9 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
|
|||||||
} else {
|
} else {
|
||||||
this.query = this.search.substr(1);
|
this.query = this.search.substr(1);
|
||||||
}
|
}
|
||||||
|
} else if (parseQueryString) {
|
||||||
|
this.search = '';
|
||||||
|
this.query = {};
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -868,6 +868,20 @@ var parseTestsWithQueryString = {
|
|||||||
'pathname': '/',
|
'pathname': '/',
|
||||||
'path': '/'
|
'path': '/'
|
||||||
},
|
},
|
||||||
|
'/example': {
|
||||||
|
protocol: null,
|
||||||
|
slashes: null,
|
||||||
|
auth: null,
|
||||||
|
host: null,
|
||||||
|
port: null,
|
||||||
|
hostname: null,
|
||||||
|
hash: null,
|
||||||
|
search: '',
|
||||||
|
query: {},
|
||||||
|
pathname: '/example',
|
||||||
|
path: '/example',
|
||||||
|
href: '/example'
|
||||||
|
},
|
||||||
'/example?query=value':{
|
'/example?query=value':{
|
||||||
protocol: null,
|
protocol: null,
|
||||||
slashes: null,
|
slashes: null,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user