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>
saitolume authored and BridgeAR committed Jan 3, 2020
1 parent 0e864a3 commit 7815d5f
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
@@ -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

0 comments on commit 7815d5f

Please sign in to comment.