.json)bestanden-les/app.js en een map data/fs — File System APIpath — paden opbouwen, onafhankelijk van OSconst fs = require('fs')
const path = require('path')
Gebruik __dirname + path.join() i.p.v. losse strings.
const filePath = path.join(__dirname, 'data', 'bericht.txt')
console.log(filePath) // bv. /Users/jij/bestanden-les/data/bericht.txt
fs.readFile leest een geheel bestand in geheugen (callback-stijl).
const filePath = path.join(__dirname, 'data', 'bericht.txt')
fs.readFile(filePath, 'utf8', (err, inhoud) => {
if (err) {
console.error('Lezen mislukt:', err.message)
return
}
console.log('Inhoud:', inhoud)
})
Let op: gebruik 'utf8' om tekst te krijgen i.p.v. een Buffer.
ENOENT — bestand bestaat nietEACCES — geen rechtenEISDIR — je probeert een map te lezen als bestandfs.writeFile creëert of overschrijft een bestand.
const outPath = path.join(__dirname, 'data', 'output.txt')
fs.writeFile(outPath, 'Eerste regel\n', 'utf8', (err) => {
if (err) {
console.error('Schrijven mislukt:', err.message)
return
}
console.log('Bestand opgeslagen:', outPath)
})
Gebruik fs.appendFile om onderaan bij te schrijven.
const logPath = path.join(__dirname, 'data', 'app.log')
fs.appendFile(logPath, 'Nieuw logitem\n', 'utf8', (err) => {
if (err) return console.error('Append mislukt:', err.message)
console.log('Log bijgewerkt')
})
fs.mkdir met recursive: true maakt tussenliggende mappen.
const dirPath = path.join(__dirname, 'data', 'uploads')
fs.mkdir(dirPath, { recursive: true }, (err) => {
if (err) return console.error('Kon map niet maken:', err.message)
console.log('Map klaar:', dirPath)
})
fs.readdir geeft namen in een map terug.
const dataDir = path.join(__dirname, 'data')
fs.readdir(dataDir, (err, items) => {
if (err)
return console.error('readdir fout:', err.message)
items.forEach((naam) => console.log('•', naam))
})
fs.rename kan ook verplaatsen (naar andere map).
const oud = path.join(__dirname, 'data', 'output.txt')
const nieuw = path.join(__dirname, 'data', 'output-old.txt')
fs.rename(oud, nieuw, (err) => {
if (err) return console.error('rename fout:', err.message)
console.log('Bestand hernoemd.')
})
Gebruik fs.unlink (let op: definitief).
const weg = path.join(__dirname, 'data', 'weg.txt')
fs.unlink(weg, (err) => {
if (err) {
if (err.code === 'ENOENT') console.log('Bestand bestond niet.')
else console.error('unlink fout:', err.message)
return
}
console.log('Bestand verwijderd.')
})
data/bericht.txt met een paar regels tekst.inhoud.split('\n').data/output.txt overschrijft met 3 regels.log(bericht) die naar data/app.log schrijft.new Date().toISOString() en fs.appendFile.