Skip to content

Commit

Permalink
doc: update message.url example in http.IncomingMessage
Browse files Browse the repository at this point in the history
Update message.url example to use The WHATWG URL API.
This is because the old example suggests using deprecated url API.

Fixes: #30048
PR-URL: #30830
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
saitolume authored and Trott committed Dec 18, 2019
1 parent ea86f8c commit eaf5975
Showing 1 changed file with 17 additions and 39 deletions.
56 changes: 17 additions & 39 deletions doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -1979,54 +1979,32 @@ Accept: text/plain\r\n
\r\n
```

Then `request.url` will be:
To parse the URL into its parts:

<!-- eslint-disable semi -->
```js
'/status?name=ryan'
new URL(request.url, `http://${request.headers.host}`);
```

To parse the url into its parts `require('url').parse(request.url)`
can be used:
When `request.url` is `'/status?name=ryan'` and
`request.headers.host` is `'localhost:3000'`:

```console
$ node
> require('url').parse('/status?name=ryan')
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?name=ryan',
query: 'name=ryan',
> new URL(request.url, request.headers.host)
URL {
href: 'http://localhost:3000/status?name=ryan',
origin: 'http://localhost:3000',
protocol: 'http:',
username: '',
password: '',
host: 'localhost:3000',
hostname: 'localhost',
port: '3000',
pathname: '/status',
path: '/status?name=ryan',
href: '/status?name=ryan' }
```

To extract the parameters from the query string, the
`require('querystring').parse` function can be used, or
`true` can be passed as the second argument to `require('url').parse`:

```console
$ node
> require('url').parse('/status?name=ryan', true)
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?name=ryan',
query: { name: 'ryan' },
pathname: '/status',
path: '/status?name=ryan',
href: '/status?name=ryan' }
searchParams: URLSearchParams { 'name' => 'ryan' },
hash: ''
}
```

## http.METHODS
Expand Down

0 comments on commit eaf5975

Please sign in to comment.