Esistono vari moduli disponibili in Node.js che possono essere utilizzati per analizzare un URL. Il modulo built-in “url” è l’opzione più comune.
Vediamo un esempio di come si può utilizzare:
```
var url = require(‘url’);
var urlToParse = ‘https://example.com/path?name=value#hash’;
// Usa il metodo parse del modulo url
var parsedUrl = url.parse(urlToParse, true);
// Stampa l’URL analizzato sulla console
console.log(parsedUrl);
```
Questo darà un oggetto con i seguenti componenti dell’URL:
```
Url {
protocol: ‘https:’,
slashes: true,
auth: null,
host: ‘example.com’,
port: null,
hostname: ‘example.com’,
hash: ‘#hash’,
search: ‘?name=value’,
query: { name: ‘value’ },
pathname: ‘/path’,
path: ‘/path?name=value’,
href: ‘https://example.com/path?name=value#hash’
}
```
Spiegazione:
- `protocol`: Il protocollo usato, usualmente è ‘http:’ o ‘https:‘
- `slashes`: Un determinante booleano se le due barre inclinate che seguono il protocollo sono presenti o meno
- `auth`: Informazioni di autenticazione se presenti
- `host`: L’hostname e la porta
- `port`: La porta specificata
- `hostname`: L’hostname o il dominio
- `hash`: Qualsiasi parte hash dell’URL (cioè ciò che segue ‘#’)
- `search`: La stringa di query completa, inclusa la domanda iniziale ‘?‘
- `query`: Un oggetto che rappresenta i parametri di query URL analizzati
- `pathname`: Il percorso dell’URL
- `path`: Il percorso e la stringa di query
- `href`: L’URL completo
Ricordati che dovresti sempre passare `true` come secondo parametro a `url.parse` se vuoi che la stringa di query venga analizzata come un oggetto.
Nota: a partire da Node.js v11.0.0, il modulo `url` legacy è deprecato e si raccomanda di utilizzare la nuova API URL:
```
const myURL = new URL;
console.log(myURL.searchParams.get(‘name’)); // value
```