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.
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.
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
- Introduksjon til Node.js og NPM
- Node.js-modulsystemet forklart
- Asynkron JavaScript og event loop
- Arbeid med filsystemet og strømmer