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.
Aufgabe
EinfachDieser 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.
- Schreibe in
store.jsnach dem Hinzufügen der neuen Notiz durchadddas gesamte Array als JSON zurück innotes.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. - Ersetze in
notes.jsimadd-Zweig die Zeile, dieAdding: ...ausgibt. Nun werden nurSaved note, die Nummer der neuen Notiz und ein Punkt ausgegeben. Mit den zwei Notizen, mit denennotes.jsonbeginnt, gibtnode notes.js add Buy breadFolgendes aus:und inSaved note 3.notes.jsonsteht dann:[ "Buy milk", "Call Ada", "Buy bread" ] - Wenn es keine Datei
notes.jsongibt, erstelltaddsie. Nachcleargibtnode notes.js add Call AdaSaved note 1.aus, undlistzeigt anschließend1. Call Adaan.
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
1JavaScript mit Node ausführen
Hallo, NodeDen Befehl lesenKommandozeilenargumenteBefehle3Dateien
JSON-Text und WerteEine Datei lesenJSON-Text schreibenEine Datei schreibenEine Notiz entfernenÜbe selbstständig: Express-Playground