Node.js für Anfänger: Grundlagen der Arbeit mit Dateien

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:

  1. r : Datei zum Lesen öffnen
  2. r+ : Datei zum Lesen und Schreiben öffnen
  3. rs : Datei zum Lesen im synchronen Modus öffnen
  4. w : Datei zum Schreiben öffnen
  5. a : Datei öffnen, um Daten an das Dateiende zu schreiben
  6. a+ : Ö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 Konsole

Lassen 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?

Source: https://habr.com/ru/post/de452566/


All Articles