Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Dateisystemoperationen | Erstellung von Konsolenanwendungen mit Node.js
Backend-Entwicklung mit Node.js und Express.js

Herausforderung: Dateisystemoperationen

Swipe um das Menü anzuzeigen

Ziel

Beherrschung der Automatisierung von Aufgabenverwaltung. Ziel ist die Entwicklung einer Anwendung, die Aufgaben aus einer Quelle sammelt, deren Inhalt extrahiert und in eine andere Datei integriert. Die Lösung soll dabei auch potenzielle Fehler behandeln.

Aufgabe

Angenommen, es gibt zwei Dateien:

  • tasks.txt, die eine Liste bestehender Aufgaben enthält;
  • new-task.txt, die eine einzelne Aufgabe enthält, die zu tasks.txt hinzugefügt werden soll.

Folgende Schritte sind zur Bearbeitung der Aufgabe erforderlich:

  1. Arbeitsumgebung vorbereiten
  • Einen neuen Ordner auf dem Rechner erstellen;
    • Diesen im bevorzugten Code-Editor öffnen.
  1. tasks.txt erstellen
  • Eine Datei mit dem Namen tasks.txt anlegen;

  • Die folgenden Aufgaben einfügen oder die vorbereitete Datei herunterladen:

    tasks.txt

Inhalt:

  • Teach a goldfish to play chess;
  • Build a sandcastle in your living room;
  • Create a song 🎶 using only sounds from nature.
  1. new-task.txt erstellen

    • Eine Datei mit dem Namen new-task.txt anlegen;
  • Die folgende Aufgabe einfügen oder die vorbereitete Datei herunterladen:

    new-task.txt

Inhalt:

  • Invent a new dance move and perform it in public.
  1. app.js erstellen
  • Das Modul fs zum Arbeiten mit Dateien importieren;
    • Mit readFile() den Inhalt von new-task.txt auslesen;
  • Erfolgreiche und fehlgeschlagene Operationen mit .then() und .catch() behandeln;
    • Im .then()-Block mit appendFile() den Inhalt an tasks.txt anhängen;
    • Nach der eingefügten Aufgabe ein Zeilenumbruch-Zeichen (\n) hinzufügen.
  1. Anwendung ausführen
  • app.js speichern;
  • Terminal öffnen und folgenden Befehl ausführen:
node app

Wenn du den untenstehenden Code-Editor verwendest, beachte bitte, dass dieser deine Dateien nicht erkennt und deinen Fortschritt nicht anzeigt.

123456789
const fs = require("fs").___; fs.___("new-task.txt", "utf-8") .then(___ => { return fs.___("tasks.txt", ___ + ___); }) .___((error) => { console.log("Error:", error); });
Hinweis
expand arrow
  1. Das fs-Modul importieren, um mit Dateien zu arbeiten.
  2. Verwenden von fs.readFile("new-task.txt", "utf-8"), um den Inhalt der Datei new-task.txt zu lesen.
  3. Eine .then()-Kette verwenden, um das erfolgreiche Lesen des Dateiinhalts zu verarbeiten.
  4. Im .then()-Block eine Callback-Funktion bereitstellen, die den Inhalt als Argument erhält.
  5. Innerhalb des .then()-Blocks des readFile-Promises das Ergebnis von fs.appendFile zurückgeben, um Inhalt zur Datei tasks.txt hinzuzufügen.
  6. Daran denken, ein Zeilenumbruch-Zeichen \n einzufügen, um den angehängten Inhalt zu trennen.
  7. Nach dem .then()-Block der appendFile-Operation einen .catch()-Block anhängen, um Fehler in der gesamten Kette zu behandeln.
  8. Im .catch()-Block eine Callback-Funktion bereitstellen, die einen Fehlerparameter erhält.
  9. Im .catch()-Block eine Fehlermeldung zusammen mit dem empfangenen Fehler ausgeben.
  10. Das Skript mit Node.js ausführen, indem node app eingegeben wird.
Lösung
expand arrow
const fs = require("fs").promises;

fs.readFile("new-task.txt", "utf-8")
  .then((content) => {
    return fs.appendFile("tasks.txt", content + "\n");
  })
  .catch((error) => {
    console.log("Error occurred:", error);
  });
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Herausforderung: Dateisystemoperationen

Ziel

Beherrschung der Automatisierung von Aufgabenverwaltung. Ziel ist die Entwicklung einer Anwendung, die Aufgaben aus einer Quelle sammelt, deren Inhalt extrahiert und in eine andere Datei integriert. Die Lösung soll dabei auch potenzielle Fehler behandeln.

Aufgabe

Angenommen, es gibt zwei Dateien:

  • tasks.txt, die eine Liste bestehender Aufgaben enthält;
  • new-task.txt, die eine einzelne Aufgabe enthält, die zu tasks.txt hinzugefügt werden soll.

Folgende Schritte sind zur Bearbeitung der Aufgabe erforderlich:

  1. Arbeitsumgebung vorbereiten
  • Einen neuen Ordner auf dem Rechner erstellen;
    • Diesen im bevorzugten Code-Editor öffnen.
  1. tasks.txt erstellen
  • Eine Datei mit dem Namen tasks.txt anlegen;

  • Die folgenden Aufgaben einfügen oder die vorbereitete Datei herunterladen:

    tasks.txt

Inhalt:

  • Teach a goldfish to play chess;
  • Build a sandcastle in your living room;
  • Create a song 🎶 using only sounds from nature.
  1. new-task.txt erstellen

    • Eine Datei mit dem Namen new-task.txt anlegen;
  • Die folgende Aufgabe einfügen oder die vorbereitete Datei herunterladen:

    new-task.txt

Inhalt:

  • Invent a new dance move and perform it in public.
  1. app.js erstellen
  • Das Modul fs zum Arbeiten mit Dateien importieren;
    • Mit readFile() den Inhalt von new-task.txt auslesen;
  • Erfolgreiche und fehlgeschlagene Operationen mit .then() und .catch() behandeln;
    • Im .then()-Block mit appendFile() den Inhalt an tasks.txt anhängen;
    • Nach der eingefügten Aufgabe ein Zeilenumbruch-Zeichen (\n) hinzufügen.
  1. Anwendung ausführen
  • app.js speichern;
  • Terminal öffnen und folgenden Befehl ausführen:
node app

Wenn du den untenstehenden Code-Editor verwendest, beachte bitte, dass dieser deine Dateien nicht erkennt und deinen Fortschritt nicht anzeigt.

123456789
const fs = require("fs").___; fs.___("new-task.txt", "utf-8") .then(___ => { return fs.___("tasks.txt", ___ + ___); }) .___((error) => { console.log("Error:", error); });
Hinweis
expand arrow
  1. Das fs-Modul importieren, um mit Dateien zu arbeiten.
  2. Verwenden von fs.readFile("new-task.txt", "utf-8"), um den Inhalt der Datei new-task.txt zu lesen.
  3. Eine .then()-Kette verwenden, um das erfolgreiche Lesen des Dateiinhalts zu verarbeiten.
  4. Im .then()-Block eine Callback-Funktion bereitstellen, die den Inhalt als Argument erhält.
  5. Innerhalb des .then()-Blocks des readFile-Promises das Ergebnis von fs.appendFile zurückgeben, um Inhalt zur Datei tasks.txt hinzuzufügen.
  6. Daran denken, ein Zeilenumbruch-Zeichen \n einzufügen, um den angehängten Inhalt zu trennen.
  7. Nach dem .then()-Block der appendFile-Operation einen .catch()-Block anhängen, um Fehler in der gesamten Kette zu behandeln.
  8. Im .catch()-Block eine Callback-Funktion bereitstellen, die einen Fehlerparameter erhält.
  9. Im .catch()-Block eine Fehlermeldung zusammen mit dem empfangenen Fehler ausgeben.
  10. Das Skript mit Node.js ausführen, indem node app eingegeben wird.
Lösung
expand arrow
const fs = require("fs").promises;

fs.readFile("new-task.txt", "utf-8")
  .then((content) => {
    return fs.appendFile("tasks.txt", content + "\n");
  })
  .catch((error) => {
    console.log("Error occurred:", error);
  });
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
some-alt