Werken met het bestandssysteem en streams
Leer hoe u bestanden in Node.js leest en schrijft met de module fs, zowel synchroon als asynchroon, en ontdek hoe streams grote hoeveelheden gegevens efficiënt verwerken.
Werken met het bestandssysteem en streams is een gratis Bootcamp backendontwikkeling met Node.js-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met Node.js. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Waarom het bestandssysteem belangrijk is
De meeste backends moeten uiteindelijk bestanden op schijf lezen of schrijven — logboeken, configuratie, uploads, rapporten. De ingebouwde fs-module van Node handelt dit allemaal af; je hoeft deze alleen met require in te laden.
const fs = require('fs');
console.log(typeof fs.readFile);Synchroon versus asynchroon
De meeste fs-methoden zijn er in twee varianten: sync (zoals readFileSync) blokkeert de gebeurtenislus, async doet dat niet. Geef op servers altijd de voorkeur aan async.
const fs = require('fs');
const data = fs.readFileSync('config.txt', 'utf8');
console.log(data);Een bestand asynchroon lezen
De klassieke callbackvorm geeft u eerst de fout en daarna de gegevens. Controleer altijd err voordat je de gegevens gebruikt — een ontbrekend bestand of een onjuiste machtiging komt daar terecht.
const fs = require('fs');
fs.readFile('notes.txt', 'utf8', (err, data) => {
if (err) { console.error('Failed:', err.message); return; }
console.log('File says:', data);
});De promisegebaseerde API
Modern Node biedt een promisegebaseerde API onder fs/promises — deze past perfect bij async/await en voorkomt geneste callbacks volledig.
const fs = require('fs/promises');
async function load() {
const data = await fs.readFile('notes.txt', 'utf8');
console.log(data);
}
load();Bestanden schrijven
Gebruik writeFile om een bestand te maken of te overschrijven. Bestaat het bestand niet? Dan wordt het gemaakt. Bestaat het wel? Dan wordt de volledige inhoud vervangen.
const fs = require('fs/promises');
async function save() {
await fs.writeFile('output.txt', 'Hello from Node!');
console.log('Saved.');
}
save();Toevoegen in plaats van overschrijven
Gebruik appendFile om gegevens aan een bestand toe te voegen zonder het te wissen — precies wat je nodig hebt voor logbestanden die regel voor regel groeien.
const fs = require('fs/promises');
async function log(line) {
await fs.appendFile('app.log', line + '\n');
}
log('Server started');Werken met paden
Hardgecodeerde paden werken niet op alle besturingssystemen. De module path lost dat op: path.join gebruikt het juiste scheidingsteken en __dirname is de map van het huidige bestand.
const path = require('path');
const full = path.join(__dirname, 'data', 'users.json');
console.log(full);Controleren of een bestand bestaat
Controleer niet eerst of een bestand bestaat — dat kan leiden tot raceomstandigheden. Probeer de bewerking gewoon uit en vang de fout op; een ontbrekend bestand veroorzaakt een fout met code 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;
}
}Waarom streams bestaan
Als je een bestand van 2 GB met readFile leest, wordt het volledig in het geheugen geladen — een crash die staat te gebeuren. Streams verwerken gegevens in kleine stukken, waardoor het geheugengebruik laag blijft.
const fs = require('fs');
const stream = fs.createReadStream('huge.log', 'utf8');
stream.on('data', chunk => console.log('Got', chunk.length, 'bytes'));Streams aan elkaar koppelen
De krachtige mogelijkheid van streams is pipe: verbind een leesbare stream rechtstreeks met een schrijfbare stream. Node handelt backpressure af, zodat een snelle lezer een trage schrijver niet overspoelt.
const fs = require('fs');
const read = fs.createReadStream('input.txt');
const write = fs.createWriteStream('copy.txt');
read.pipe(write);Mappen weergeven en maken
De fs-module beheert ook mappen: mkdir maakt mappen (voeg { recursive: true } toe voor geneste paden) en readdir geeft de inhoud weer.
const fs = require('fs/promises');
async function setup() {
await fs.mkdir('uploads', { recursive: true });
const files = await fs.readdir('.');
console.log(files);
}
setup();Korte controle
Test je begrip van bestandsbewerkingen.
Samenvatting
Je kunt nu met het bestandssysteem werken: de synchrone, callback- en promise-API's van fs, asynchrone bewerkingen op servers, basis-I/O, platformonafhankelijke paden met path en streams voor grote bestanden.
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 92
Veelgestelde vragen
Is de les “Werken met het bestandssysteem en streams” gratis?
Ja — de volledige tekst van “Werken met het bestandssysteem en streams” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Bootcamp backendontwikkeling met Node.js wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat leer ik in “Werken met het bestandssysteem en streams”?
Leer hoe u bestanden in Node.js leest en schrijft met de module fs, zowel synchroon als asynchroon, en ontdek hoe streams grote hoeveelheden gegevens efficiënt verwerken. Je oefent met Bootcamp backendontwikkeling met Node.js door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Bootcamp backendontwikkeling met Node.js te beginnen?
Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met Node.js op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Werken met het bestandssysteem en streams”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met Node.js?
Ja. Elke les over Bootcamp backendontwikkeling met Node.js bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inleiding tot Node.js en NPM
- Het modulesysteem van Node.js uitgelegd
- Asynchrone JavaScript en de event loop
- Werken met het bestandssysteem en streams