learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
22 lines (13 loc) • 1.53 kB
Markdown
Scrivi un programma che usa una singola operazione **asincrona** sul file system per leggere un file e stampare il numero di caratteri di nuova riga che contiene sulla console (stdout), in modo simile all'esecuzione di `cat file | wc -l`.
Il percorso completo del file da leggere verrà fornito come primo argomento da riga di comando.
----------------------------------------------------------------------
# SUGGERIMENTI
La soluzione di questo problema è *quasi* la stessa del problema precedente eccetto che devi ora farlo **alla maniera di Node.js**: asincrona.
Anziché `fs.readFileSync()` vorrai usare `fs.readFile()` e anziché usare il valore di ritorno di questo metodo dovrai raccogliere il valore da una funzione callback che passi come il secondo argomento. Per maggiori informazioni sulle callback, dài un'occhiata a: https://github.com/maxogden/art-of-node#callbacks.
Ricorda che le callback idiomatiche di Node.js hanno normalmente la firma:
```js
function callback (err, data) { /* ... */ }
```
quindi puoi controllare se si è verificato un errore controllando se il primo argomento ha un valore di verità. Se non si è verificato alcun errore, dovresti ricevere il tuo oggetto `Buffer` come secondo argomento. Come per `readFileSync()`, puoi fornire 'utf8' come secondo argomento e passare la callback come terzo argomento, e otterrai un valore `String` anziché un `Buffer`.
La documentazione sul modulo `fs` può essere ottenuta puntando il tuo browser all'indirizzo:
{rootdir:/docs-nodejs/fs.html}