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.45 kB
Markdown
Skrive et program som bruker en **asynkron** operasjon mot filesystemet for å lese en fil, og skrive ut antallet newlines (\n) den inneholder til skjermen (stdout). Tilsvarer det samme som å kjøre kommandoen `cat file | wc -l`.
Hele filstien til filen du skal lese vil bli sendt inn som første kommandolinjeargument.
----------------------------------------------------------------------
# HINT
Løsningen på problemet er nesten identisk med løsningen på det forrige problemet. Eneste forskjellen er at du må løse problemet på **Node.js måten**: asynkront.
I stede for å bruke `fs.readFileSync()` vil du nå benytte `fs.readFile()`. Denne vil ikke returnere svaret som i forrige oppgave, men gi svaret i en callback funksjon. Callback funksjonen skal gis som det andre parameteret til `fs.readFile()`. For å lære mer om callbacks kan du lese https://github.com/maxogden/art-of-node#callbacks.
Husk at den idiomatiske Node.js måten for callbacks normalt har signaturen:
```js
function callback (err, data) { /* ... */ }
```
og du kan derfor sjekke om **err argumentet** inneholder en feil. Hvis det ikke var noen feil burde du ha et `Buffer` objekt i **data argumentet**. På samme måte som `readFileSync()` kan du oppgi 'utf8' som det andre argumentet, callback funksjonen som det tredje argumentet og du vil få en `String` i stede for et `Buffer`.
Dokumentasjonen til `fs`s finner du her:
{rootdir:/docs-nodejs/fs.html}