Arbeiten mit dem Dateisystem in JavaScript: Ein praktischer Leitfaden für Node.js

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum sollte man in JavaScript mit Dateien arbeiten können?

\n\n

Wenn wir über JavaScript sprechen, denken die meisten sofort an den Browser und interaktive Oberflächen. Mit dem Aufkommen der Plattform Node.js hat JavaScript jedoch die Grenzen von Webseiten weit hinter sich gelassen. Heute ist es eine vollwertige Sprache für die Serverentwicklung, Automatisierung und Dienstprogramme. Und eine der wichtigsten Aufgaben, vor denen jeder Entwickler steht, ist die Arbeit mit dem Dateisystem.

\n\n

Die Fähigkeit, Dateien zu lesen, zu schreiben, zu verschieben und zu löschen, ist eine Grundlage, ohne die kein ernsthaftes Projekt auskommt. Ob Logger, Konfigurationsdatei, Bild-Upload oder Datenanalyse – überall wird ein Zugriff auf das Dateisystem benötigt.

\n\n

In diesem Artikel werden wir praktische Beispiele für die Arbeit mit dem Dateisystem in Node.js durchgehen. Sie erfahren, wie Sie das integrierte Modul fs verwenden, welche Methoden es gibt und wie Sie typische Fehler vermeiden. Der gesamte Code kann sofort ausgeführt und getestet werden.

\n\n

Grundlegende Methoden des Moduls fs

\n\n

Das Modul fs (File System) ist Teil der Standardinstallation von Node.js. Es muss nicht separat installiert werden. Um zu beginnen, reicht es, es am Anfang der Datei einzubinden:

\n\n
const fs = require('fs');\nconst fsPromises = require('fs').promises; // für die Arbeit mit Promises
\n\n

Alle Methoden des Moduls fs gibt es in drei Varianten:

\n\n
    \n
  • Synchron – blockieren die Codeausführung bis zum Abschluss der Operation. Haben normalerweise das Suffix Sync.
  • \n
  • Asynchron mit Callbacks – klassischer Node.js-Stil.
  • \n
  • Asynchron mit Promises – moderner Ansatz über fs.promises.
  • \n
\n\n

In modernen Projekten wird die Verwendung von Promises und async/await empfohlen. Das macht den Code sauberer und verständlicher.

\n\n

Dateien lesen

\n\n

Das häufigste Szenario ist das Lesen des Inhalts einer Datei. Betrachten wir ein Beispiel mit der Textdatei data.txt:

\n\n
const fs = require('fs').promises;\n\nasync function readFileExample() {\n    try {\n        const data = await fs.readFile('data.txt', 'utf8');\n        console.log('Dateiinhalt:');\n        console.log(data);\n    } catch (err) {\n        console.error('Fehler beim Lesen der Datei:', err.message);\n    }\n}\n\nreadFileExample();
\n\n

Der zweite Parameter 'utf8' gibt die Kodierung an. Wenn Sie ihn weglassen, erhalten Sie einen rohen Buffer. Geben Sie für Textdateien immer die Kodierung an.

\n\n

In Dateien schreiben

\n\n

Das Schreiben von Daten in eine Datei kann auf zwei Arten erfolgen: vollständiges Überschreiben oder Anhängen an das Ende.

\n\n

Datei überschreiben:

\n
const fs = require('fs').promises;\n\nasync function writeFileExample() {\n    try {\n        await fs.writeFile('output.txt', 'Hallo, Dateisystem!');\n        console.log('Datei erfolgreich geschrieben');\n    } catch (err) {\n        console.error('Fehler beim Schreiben:', err.message);\n    }\n}\n\nwriteFileExample();
\n\n

An das Ende der Datei anhängen:

\n
const fs = require('fs').promises;\n\nasync function appendFileExample() {\n    try {\n        await fs.appendFile('log.txt', `Neuer Eintrag: ${new Date().toISOString()}\\n`);\n        console.log('Daten hinzugefügt');\n    } catch (err) {\n        console.error('Fehler beim Hinzufügen:', err.message);\n    }\n}\n\nappendFileExample();
\n\n

Die Methode appendFile eignet sich ideal für die Protokollierung oder das Sammeln von Daten.

\n\n

Verwaltung von Verzeichnissen und Dateien

\n\n

Die Arbeit mit dem Dateisystem beschränkt sich nicht auf Lesen und Schreiben. Oft müssen Ordner erstellt, die Existenz von Dateien überprüft oder diese gelöscht werden.

\n\n

Verzeichnisse erstellen und löschen

\n\n
const fs = require('fs').promises;\n\nasync function manageDirectories() {\n    try {\n        // Verzeichnis erstellen (falls es nicht existiert)\n        await fs.mk                

Blogs

Buchempfehlungen