Heute werden wir darüber sprechen, wie Sie mit Node.js mit dem Dateisystem arbeiten. Berücksichtigen Sie die grundlegenden Vorgänge, die mit Dateien ausgeführt werden. Solche Operationen umfassen Folgendes:
- Dateierstellung
- Datei lesen
- Daten in eine Datei schreiben
- Löschen von Dateien
- Datei umbenennen
Die Notwendigkeit, solche Operationen durchzuführen, ergibt sich in einer Vielzahl von Situationen.

Fs-Modul
Node.js hat ein Standardmodul,
fs
(kurz für File System), das den Entwicklertools für die Arbeit mit dem Dateisystem bietet. Sie können es wie folgt in das Projekt importieren:
var fs = require('fs');
Die Methoden dieses Moduls werden in synchroner und asynchroner Form dargestellt. Die an asynchrone Methoden übergebenen Rückruffunktionen akzeptieren das Fehlerobjekt als ersten Parameter und die Daten, die zurückgegeben wurden, als die Operation erfolgreich war, als zweiten Parameter. Betrachten Sie ein Beispiel:
function fileHandler(){ fs.readFile('textFile.txt', 'utf8', (err, data) => { if(err) throw err; console.log(data); }); }
Die
.readFile()
-Methode, über die wir noch mehr sprechen werden, dient zum Lesen von Dateien. In diesem Beispiel hat die Rückruffunktion zwei Parameter -
err
und
data
. Fehler, die beim Versuch auftreten können, eine Datei zu lesen, fallen in den ersten Parameter. Daten, die nach einer erfolgreichen Operation erhalten wurden, befinden sich im zweiten Parameter. Beachten Sie, dass
.readFile()
eine asynchrone Methode des
fs
Moduls ist. Die synchrone Version heißt
.readFileSync()
. Ein ähnlicher Ansatz wird verwendet, um andere Modulmethoden zu benennen.
Erstellen Sie eine neue Datei
Beginnen wir mit einem Beispiel:
function fileHandler(){ fs.open('testFile.txt', 'w', (err) => { if(err) throw err; console.log('File created'); }); }
Hier wird mit der Methode
fs.open()
eine neue Datei erstellt. Als erstes Argument wird ein Dateiname verwendet. Sein zweites Argument ist ein Flag, das dem System genau sagt, was wir mit der Datei machen wollen. In diesem Fall ist dies das
w
Flag (kurz für Schreiben), das angibt, dass die Datei zum Schreiben geöffnet werden soll. Die
.open()
-Methode kann verschiedene Flags akzeptieren. Hier sind einige davon:
r
: Datei zum Lesen öffnenr+
: Datei zum Lesen und Schreiben öffnenrs
: Datei zum Lesen im synchronen Modus öffnenw
: Datei zum Schreiben öffnena
: Datei öffnen, um Daten an das Dateiende zu schreibena+
: Öffnen Sie die Datei zum Lesen und Schreiben von Daten bis zum Ende der Datei
Bevor wir mit dem nächsten Beispiel
testFile.txt
, bearbeiten wir die gerade erstellte Datei
testFile.txt
mit einem Texteditor. Fügen Sie den folgenden Text hinzu:
This is a test file. We're learning about Node.js File System. The End.
Daten in eine Datei schreiben
Lassen Sie uns darüber sprechen, wie Sie einer Datei etwas hinzufügen können:
function fileHandler(){ fs.appendFile('testFile.txt', ' This line is beyond the end.', (err) => { if(err) throw err; console.log('Data has been added!'); }); }
Hier verwenden wir die Methode
.appendFile()
, um Daten an das Ende einer vorhandenen Datei anzuhängen. Als erstes Argument akzeptiert diese Methode den Dateinamen als zweites - die Daten, die am Ende der Datei hinzugefügt werden müssen. Das dritte Argument ist wie üblich eine Rückruffunktion.
Nachdem der oben gezeigte Code erfolgreich ausgeführt wurde, sieht der Inhalt der Datei folgendermaßen aus:
This is a test file. We're learning about Node.js File System. The End. This line is beyond the end.
Es gibt eine andere Möglichkeit, Daten in eine Datei zu schreiben.
.writeFile()
impliziert die Verwendung der Methode
.writeFile()
. Diese Methode ist
.appendFile()
sehr ähnlich,
.appendFile()
jedoch einen wichtigen Unterschied auf. Tatsache ist, dass wir mit der
.appendFile()
-Methode der Datei nach den bereits darin enthaltenen Daten neue Daten hinzufügen. Bei Verwendung der Methode
.writeFile()
wird der Inhalt der Datei durch einen neuen ersetzt. Versuchen wir diese Methode:
function fileHandler(){ fs.writeFile('testFile.txt', "I'm the replacement you've been looking for.", (err) => { if(err) throw err; console.log('Data has been replaced!'); }); }
Nach erfolgreichem Betrieb enthält die Datei den folgenden Text:
I'm the replacement you've been looking for.
Wie Sie sehen können, wird der Inhalt der Datei vollständig durch einen neuen ersetzt.
Datei lesen
Zum Lesen von Dateien bietet das
fs
Modul die Methode
.readFile()
, ein Beispiel für die Verwendung, die wir bereits gesehen haben. Der Dateiname wird als erster Parameter und die Codierung als zweiter Parameter verwendet. Der dritte Parameter ist die Rückruffunktion. Versuchen wir, den Inhalt der Datei
testFile.txt
mit dieser Methode auf die Konsole zu drucken:
function fileHandler(){ fs.readFile('testFile.txt', 'utf8', (err, data) => { if(err) throw err; console.log('--------- [File Data] ---------'); console.log(data); console.log('--------- [File Data] ---------'); }); }
Das bekommen wir.
Dateidatenausgabe an die KonsoleLassen Sie uns nun über das Umbenennen von Dateien sprechen.
Datei umbenennen
Verwenden
.rename()
zum Umbenennen von Dateien die Methode
.rename()
:
function fileHandler(){ fs.rename('testFile.txt', 'newTestFile.txt', (err) => { if(err) throw err; console.log('File renamed successfully!'); }); }
Das erste Argument der Methode ist der Name einer vorhandenen Datei, das zweite der neue Name dieser Datei. Nach einem erfolgreichen Aufruf dieser Methode wird die Datei
newTestFile.txt
in
newTestFile.txt
.
Löschen von Dateien
Verwenden
.unlink()
zum Löschen von Dateien die Methode
.unlink()
:
function fileHandler(){ fs.unlink('newTestFile.txt', (err) => { if(err) throw err; console.log('File deleted successfully!'); }); }
Ein erfolgreicher Aufruf dieser Methode löscht die Datei
newTestFile.txt
.
Zusammenfassung
In diesem Artikel haben wir die Grundlagen der Arbeit mit dem Dateisystem in Node.js untersucht. Wenn Sie dieses Thema vertiefen möchten, schauen Sie sich
dieses Material aus dem Veröffentlichungszyklus von Node.js an, lesen Sie die
Dokumentation zum
fs
Modul und versuchen Sie, alles auszuprobieren, was Sie in der Praxis lernen.
Liebe Leser! Verwenden Sie das Standard-fs-Modul oder etwas anderes, um mit Dateien in Node.js zu arbeiten?
