Menu
CoddyTech

Eine Datei schreiben

Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 14 von 33.

add vergisst die Notiz, sobald das Programm endet.

writeFileSync(path, text) schreibt eine Datei und ersetzt dabei ihren gesamten bisherigen Inhalt. JSON.stringify wandelt ein Array in JSON-Text um, und null, 2 rückt ihn um zwei Leerzeichen ein, damit er in Files gut lesbar ist.

import { writeFileSync } from 'node:fs';

const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));

Die Datei enthält immer das gesamte Array: Lade die Notizen, füge eine hinzu und schreibe sie alle zurück. In store.js ist add eine Methode des Objekts store. Innerhalb einer Methode ist this das Objekt selbst, daher ist this.notes das Array des Speichers. Das Array selbst zu übergeben, löst einen Fehler aus, weil eine Datei Text enthält.

challenge icon

Aufgabe

Einfach

Dieser Schritt öffnet das vorbereitete Projekt des Kurses für ein Notiz-Befehlszeilentool und nicht deine Projektdateien aus Eine Datei lesen (einschließlich store.js). Deine frühere Arbeit bleibt in ihrer eigenen Lektion. Lies die bereitgestellten Dateien, bevor du store.js bearbeitest. Diese Kopie enthält das Notiztool zum Lesen von Dateien.

add vergisst die Notiz weiterhin, wenn das Programm beendet wird. Sorge dafür, dass jede Notiz in notes.json gespeichert wird, damit list sie beim nächsten Durchlauf anzeigt.

  1. Schreibe in store.js nach dem Hinzufügen der neuen Notiz durch add das gesamte Array als JSON zurück in notes.json. Schreibe jede Notiz, nicht nur die neue: Beim Schreiben in eine Datei wird ihr gesamter bisheriger Inhalt ersetzt. Rücke das JSON um zwei Leerzeichen ein, damit es in Dateien leicht zu lesen ist.
  2. Ersetze in notes.js im add-Zweig die Zeile, die Adding: ... ausgibt. Nun werden nur Saved note , die Nummer der neuen Notiz und ein Punkt ausgegeben. Mit den zwei Notizen, mit denen notes.json beginnt, gibt node notes.js add Buy bread Folgendes aus:
    Saved note 3.
    und in notes.json steht dann:
    [
      "Buy milk",
      "Call Ada",
      "Buy bread"
    ]
  3. Wenn es keine Datei notes.json gibt, erstellt add sie. Nach clear gibt node notes.js add Call Ada Saved note 1. aus, und list zeigt anschließend 1. Call Ada an.

Probiere es aus: Gib add Buy bread in das Feld nach $ node notes.js ein und drücke die Eingabetaste. Du siehst Saved note 3.. Gib list ein: Buy bread ist nun Notiz 3, obwohl dies ein neuer Durchlauf ist. Öffne notes.json in Dateien, um das gespeicherte Array anzusehen. Gib dann clear ein, wodurch die Datei gelöscht wird, und anschließend add Call Ada: Du siehst Saved note 1..

Probier es selbst

import { existsSync, readFileSync } from 'node:fs';

const file = 'notes.json';

const store = {
    notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;

Alle Lektionen in Node.js-Grundlagen

Übe selbstständig: Express-Playground