https://www.abc.com/rectangle?width=10&height=2
| Name | Example |
|---|---|
| path | /rectangle |
| query | width=10&height=2 |
base = 'http://' + req.headers.host + '/'; urlPathAndQuery = req.url; url = new URL(urlPathAndQuery, base);
path = url.pathname() queryString = url.search; //query as key-value pairs queryPairs = Array.from(url.searchParams);
//given "queryPairs" from previous step.
url.searchParams
const plainObject = {};
for (let pair of queryPairs)
plainObject[pair[0]] = pair[1];
//given "plainObject" from the previous step //assuming our query param keys are "width" and "height" w = plainObject.width; h = plainObject.height; //or remember plain objects can be used like maps w = plainObject["width"]; h = plainObject["height"];
class UrlWrapper {
constructor(req)
path()
queryAsString()
queryAsArray()
queryAsPlainObject()
}