Bootcamp i backendutvikling med Node.js · leksjon

Arbeid med filsystemet og strømmer

Lær å lese og skrive filer i Node.js ved hjelp av fs-modulen, både synkront og asynkront, og oppdag hvordan strømmer lar deg behandle store datamengder effektivt.

Leksjon 4 av 413 trinn

Arbeid med filsystemet og strømmer er en gratis leksjon i Bootcamp i backendutvikling med Node.js på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med Node.js, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.

Hvorfor filsystemet er viktig

De fleste backend-systemer må før eller siden lese eller skrive filer på disken – logger, konfigurasjon, opplastinger og rapporter. Node har en innebygd fs-modul som håndterer alt dette; du trenger bare å require den.

const fs = require('fs');
console.log(typeof fs.readFile);

Synkront kontra asynkront

De fleste fs-metoder finnes i to varianter: sync (som readFileSync) blokkerer hendelsesløkken, mens async ikke gjør det. På servere bør du alltid foretrekke async.

const fs = require('fs');
const data = fs.readFileSync('config.txt', 'utf8');
console.log(data);

Lese en fil asynkront

Den klassiske callback-formen gir deg feil først, deretter data. Sjekk alltid err før du bruker dataene – en manglende fil eller ugyldige tillatelser havner der.

const fs = require('fs');
fs.readFile('notes.txt', 'utf8', (err, data) => {
  if (err) { console.error('Failed:', err.message); return; }
  console.log('File says:', data);
});

Det løftebaserte API-et

Moderne Node tilbyr et løftebasert API under fs/promises – det passer perfekt med async/await og gjør nesting av callback-funksjoner helt unødvendig.

const fs = require('fs/promises');
async function load() {
  const data = await fs.readFile('notes.txt', 'utf8');
  console.log(data);
}
load();

Skrive filer

Bruk writeFile til å opprette eller overskrive en fil. Finnes ikke filen? Den opprettes. Finnes filen allerede? Innholdet erstattes i sin helhet.

const fs = require('fs/promises');
async function save() {
  await fs.writeFile('output.txt', 'Hello from Node!');
  console.log('Saved.');
}
save();

Legge til i stedet for å overskrive

Hvis du vil legge til noe i en fil uten å slette det eksisterende innholdet, bruker du appendFile – akkurat det du trenger for loggfiler som vokser linje for linje.

const fs = require('fs/promises');
async function log(line) {
  await fs.appendFile('app.log', line + '\n');
}
log('Server started');

Arbeide med stier

Hardkodede stier fungerer ikke på tvers av operativsystemer. path-modulen løser dette: path.join bruker riktig skilletegn, og __dirname er mappen til den gjeldende filen.

const path = require('path');
const full = path.join(__dirname, 'data', 'users.json');
console.log(full);

Kontrollere om en fil finnes

Ikke kontroller om filen finnes først – det kan føre til kappløpstilstander. Bare prøv operasjonen og fang feilen; en manglende fil utløser en feil med koden ENOENT.

const fs = require('fs/promises');
async function read() {
  try {
    return await fs.readFile('maybe.txt', 'utf8');
  } catch (err) {
    if (err.code === 'ENOENT') return 'default content';
    throw err;
  }
}

Hvorfor strømmer finnes

Hvis du leser en fil på 2 GB med readFile, lastes hele filen inn i minnet – en krasj som bare venter på å skje. Strømmer behandler data i små deler, slik at minnebruken holdes lav.

const fs = require('fs');
const stream = fs.createReadStream('huge.log', 'utf8');
stream.on('data', chunk => console.log('Got', chunk.length, 'bytes'));

Koble sammen strømmer med piping

Det kraftigste du kan gjøre med strømmer, er å bruke pipe: koble en lesbar strøm direkte til en skrivbar strøm. Node håndterer mottrykk, slik at en rask leser ikke overbelaster en langsom skriver.

const fs = require('fs');
const read = fs.createReadStream('input.txt');
const write = fs.createWriteStream('copy.txt');
read.pipe(write);

Vise og opprette mapper

fs-modulen håndterer også mapper: mkdir oppretter mapper (legg til { recursive: true } for nestede stier), mens readdir viser innholdet.

const fs = require('fs/promises');
async function setup() {
  await fs.mkdir('uploads', { recursive: true });
  const files = await fs.readdir('.');
  console.log(files);
}
setup();

Hurtigsjekk

Test forståelsen din av filoperasjoner.

Oppsummering

Nå kan du arbeide med filsystemet: synkrone, callback-baserte og løftebaserte API-er i fs, asynkron kode på servere, grunnleggende I/O, plattformuavhengige path-stier og strømmer for store filer.

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
22
Leksjoner
92

Ofte stilte spørsmål

Er leksjonen «Arbeid med filsystemet og strømmer» gratis?

Ja – hele teksten i «Arbeid med filsystemet og strømmer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bootcamp i backendutvikling med Node.js-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.

Hva lærer jeg i «Arbeid med filsystemet og strømmer»?

Lær å lese og skrive filer i Node.js ved hjelp av fs-modulen, både synkront og asynkront, og oppdag hvordan strømmer lar deg behandle store datamengder effektivt. Du øver på Bootcamp i backendutvikling med Node.js med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med Node.js?

Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med Node.js på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Arbeid med filsystemet og strømmer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med Node.js-leksjonen?

Ja. Alle Bootcamp i backendutvikling med Node.js-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Node.js og NPM
  2. Node.js-modulsystemet forklart
  3. Asynkron JavaScript og event loop
  4. Arbeid med filsystemet og strømmer
← Tilbake til Bootcamp i backendutvikling med Node.js