Skip to content

Dateien mit Node.js schreiben

Eine Datei schreiben

Der einfachste Weg, Dateien in Node.js zu schreiben, ist die Verwendung der fs.writeFile()-API.

javascript
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:

javascript
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:

javascript
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:

javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])

Die Flags, die Sie wahrscheinlich verwenden werden, sind:

FlagBeschreibungDatei 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
aDieses 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()):

javascript
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():

javascript
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()