learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
30 lines (19 loc) • 1.64 kB
Markdown
Scrivi un programma che effettui una richiesta HTTP GET ad un URL fornito come primo argomento da riga di comando. Scrivi il contenuto di **ciascun** evento "data" della risposta come una stringa su una nuova riga della console (stdout).
----------------------------------------------------------------------
## SUGGERIMENTI
Per questo esercizio avrai bisogno di usare il modulo core `http`.
La documentazione del modulo `http` può essere ottenuta puntando il tuo browser a questo indirizzo:
{rootdir:/docs-nodejs/http.html}
Il metodo `http.get()` è una scorciatoia per semplici richieste GET, usalo per semplificare la tua soluzione. Il primo argomento di `http.get()` può essere l'URL che desideri richiedere con GET; fornisci una callback come secondo argomento.
Diversamente da altre funzioni callback, questa ha la firma:
```js
function callback (response) { /* ... */ }
```
In cui l'oggetto `response` è un oggetto **Stream** di Node. Puoi trattare gli Stream di Node come oggetti che emettono eventi.
I tre eventi di maggiore interesse sono: "data", "error" ed "end".
Puoi metterti in ascolto di un evento in questo modo:
```js
response.on('data', function (data) { /* ... */ })
```
L'evento "data" è emesso quando un frammento di dati è disponibile e può essere processato. La dimensione del frammento dipende dalla fonte dati sottostante.
L'oggetto `response` / Stream che ottieni da `http.get()` ha anche un metodo `setEncoding()`. Se chiami questo metodo con "utf8", gli eventi "data" emetteranno oggetti String anziché oggetti standard `Buffer` di Node che dovrai esplicitamente convertire in stringhe.