Dateien mit Node.js schreiben
Eine Datei schreiben
Der einfachste Weg, Dateien in Node.js zu schreiben, ist die Verwendung der fs.writeFile()
-API.
const fs = require('node:fs')
const content = 'Ein bisschen Inhalt!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
} else {
// Datei erfolgreich geschrieben
}
})
Eine Datei synchron schreiben
Alternativ können Sie die synchrone Version fs.writeFileSync
verwenden:
const fs = require('node:fs')
const content = 'Ein bisschen Inhalt!'
try {
fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
console.error(err)
}
Sie können auch die auf Promises basierende Methode fsPromises.writeFile()
verwenden, die vom Modul fs/promises
angeboten wird:
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Ein bisschen Inhalt!'
await fs.writeFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()
Standardmäßig ersetzt diese API den Inhalt der Datei, falls sie bereits existiert.
Sie können das Standardverhalten ändern, indem Sie ein Flag angeben:
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])
Die Flags, die Sie wahrscheinlich verwenden werden, sind:
Flag | Beschreibung | Datei wird erstellt, wenn sie nicht existiert |
---|---|---|
r+ | Dieses Flag öffnet die Datei zum Lesen und Schreiben | ❌ |
w+ | Dieses Flag öffnet die Datei zum Lesen und Schreiben und positioniert den Stream auch am Anfang der Datei | ✅ |
a | Dieses Flag öffnet die Datei zum Schreiben und positioniert den Stream auch am Ende der Datei | ✅ |
a+ | Dieser Stream öffnet die Datei zum Lesen und Schreiben und positioniert den Stream auch am Ende der Datei | ✅ |
Weitere Informationen über die Flags finden Sie in der fs-Dokumentation.
Inhalt an eine Datei anhängen
Das Anhängen an Dateien ist praktisch, wenn Sie eine Datei nicht mit neuem Inhalt überschreiben, sondern sie erweitern möchten.
Beispiele
Eine praktische Methode, um Inhalte an das Ende einer Datei anzuhängen, ist fs.appendFile()
(und sein Gegenstück fs.appendFileSync()
):
const fs = require('node:fs')
const content = 'Einige Inhalte!'
fs.appendFile('file_log', content, err => {
if (err) {
console.error(err)
} else {
// fertig!
}
})
Beispiel mit Promises
Hier ist ein Beispiel für fsPromises.appendFile()
:
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Einige Inhalte!'
await fs.appendFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()