FS-Modul 1

Was ist das FS-Modul?

Das FS-Modul (File-System-Modul) ist ein in Node.js integriertes Modul, das die Verwendung des Dateisystems des auf dem Computer installierten Betriebssystems ermöglicht. Das FS-Modul ermöglicht das erstellen, lesen, löschen, aktualisieren und umbenennen von Dateien und Verzeichnissen:

Das FS-Modul verwenden

FS-Modul einbinden

Das FS-Modul wird mit „require(‚fs‘)“ eingebunden:

Das FS-Modul für Dateien verwenden

Dateien öffnen / erstellen

Mit „fs.open(pfad, flag, callback)“ kann eine Datei geöffnet werden. Wenn die Datei nicht existiert, wird eine leere Datei erstellt. Mit dem ersten Parameter wird das Verzeichnis und der Dateiname definiert. Mit dem zweiten Parameter kann der Lese-/Schreibmodus angegeben werden (siehe weiter unten). Der dritte Parameter definiert die Callback-Funktion, die ausgeführt wird, wenn die Datei geöffnet bzw erstellt wurde:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Lese-/Schreibmodus:

Flag Beschreibung
r

Datei zum Lesen öffnen bzw. Fehlermeldung, wenn sie nicht existiert

r+

Datei zum Lesen und Schreiben öffnen bzw. Fehlermeldung, wenn sie nicht existiert

rs

Datei zum Lesen im synchronen Modus öffnen

rs+

Datei zum Lesen und Schreiben im synchronen Modus öffnen

w

Datei zum Schreiben öffnen und leeren, wenn sie existiert bzw. erstellen, wenn sie nicht existiert

wx

Datei zum Schreiben öffnen und erstellen, wenn sie nicht existiert bzw. Fehlermeldung, wenn sie existiert

w+

Datei zum Lesen und Schreiben öffnen und leeren, wenn sie existiert bzw. erstellen, wenn sie nicht existiert

wx+

Datei zum Lesen und Schreiben öffnen und erstellen, wenn sie nicht existiert bzw. Fehlermeldung, wenn sie existiert

a

Datei zum Anhängen öffnen und erstellen, wenn sie nicht existiert

ax

Datei zum Anhängen öffnen bzw. Fehlermeldung, wenn sie existiert

a+

Datei zum Lesen und Anhängen öffnen und erstellen, wenn sie nicht existiert

ax+

Datei zum Lesen und Anhängen öffnen bzw. Fehlermeldung, wenn sie existiert

Dateien auslesen

Mit „fs.readFile(pfad, buffer, offset, length, position, callback)“ können Daten aus einer Datei ausgelesen werden. Mit dem ersten Parameter wird das Verzeichnis und der Dateiname der Datei angegeben, aus der die Daten ausgelesen werden sollen. Mit dem zweiten Parameter kann ein sog. Buffer angegeben werden, in den die Daten geschrieben werden sollen und mit dem dritten Parameter der Startpunkt im Buffer. Mit dem vierten Parameter wird die Länge der zu lesenden Daten und mit dem fünften Parameter der Startpunkt in der Datei angegeben. Mit dem sechsten Parameter kann dann wieder eine Callback-Funktion angegeben werden, die ausgeführt wird, wenn die Daten gelesen wurden:

JavaScript-Datei:

Textdatei:

Kommandozeile:

Webbrowser:

Wird die auszulesende Datei zuvor mit „fs.open()“ geöffnet, kann der zweite Parameter der Callback-Funktion vonfs.open(…, function(err, file) { … })als erster Parameter für fs.readFile(file, …) verwendet werden:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Dateien schließen

Mit „fs.close(fd, callback)“ kann eine Datei geschlossen werden. Der erste Parameter ist die Beschreibung der zu schließenden Datei für den der zweite Parameter der Callback-Funktion vonfs.open(…, function(err, file) { … })“ verwendet werden kann. Mit dem zweiten Parameter kann eine Callback-Funktion angegeben werden, die ausgeführt wird, wenn die entsprechende Datei geschlossen wurde:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

In Dateien schreiben

Mit „fs.writeFile(pfad, daten, options, callback)“ können Daten in eine Datei geschrieben werden. Dabei wird der Inhalt einer bereits existierenden Datei überschrieben. Mit dem ersten Parameter wird das Verzeichnis und der Dateiname angegeben. Mit dem zweiten Parameter werden die zu schreibenden Daten als Zeichenkette oder sog. Buffer an die Schreibfunktion übergeben. Mit dem dritten Parameter kann der Zeichensatz für die zu schreibenden Daten angegeben werden (Standard ist utf8). Der vierte Parameter definiert die Callback-Funktion, die ausgeführt wird, wenn der Schreibprozess abgeschlossen ist:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

An Dateien anhängen

Mit „fs.appendFile(pfad, daten, options, callback)“ können Daten an die bereits existierenden Daten einer Datei angehängt werden. Die Parameter sind die gleichen wie bei „fs.writeFile()“:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Hinweis: Bei dem oben gezeigten Beispiel wird nach dem Lesen mit „readFile()“ der anzuhängende Inhalt nochmals in die Datei geschrieben, so dass der angehängte Inhalt doppelt vorhanden ist. Ob hier ein Fehler im FS-Modul vorliegt oder sich „appendFile()“ für diesen Anwendungsfall nicht eignet, konnte abschließend nicht geklärt werden!

Eine weitere Möglichkeit um Daten an eine bereits existierende Datei anzuhängen ist, die Datei zuvor mit „open()“ und dem Flag „a...“ zu öffnen:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Hinweis: Auch bei dieser Vorgehensweise wird nach dem Lesen mit „readFile()“ der anzu-hängende Inhalt nochmals in die Datei geschrieben, so dass der angehängte Inhalt doppelt vorhanden ist!

Dateien leeren

Mit „fs.ftruncate(fd, länge, callback)“ kann eine Datei geleert werden. Der erste Parameter ist die Beschreibung der zu schließenden Datei für den der zweite Parameter der Callback-Funktion von „fs.open(…, function(err, file) { … })“ verwendet werden kann. Mit dem zweiten Parameter kann eine Länge angegeben werden, ab der die Datei geleert wird. Die Daten bis zu dieser Länge bleiben erhalten. Mit dem dritten Parameter kann eine Callback-Funktion angegeben werden, die ausgeführt wird, wenn die Datei geleert wurde:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Dateien umbenennen

Mit „fs.rename(old_filename, new_filename, callback)“ können Dateien umbenannt werden:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Dateiexplorer:

Dateien löschen

Mit „fs.unlink(filename, callback)“ kann eine Datei gelöscht werden:

JavaScript-Datei:

Kommandozeile:

Webbrowser:

Dateiexplorer:

Quellen