Eine Datei lesen
Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 12 von 33.
Jeder Durchlauf beginnt mit denselben drei Notizen, weil sie nur im Arbeitsspeicher existieren.
readFileSync(path, 'utf8') aus node:fs liest eine Datei als Zeichenkette. Eine Notizdatei enthält JSON, ein Textformat für Daten, die wie JavaScript-Arrays und -Objekte geschrieben sind, und JSON.parse wandelt diesen Text in ein Array um. Das Lesen einer Datei, die nicht vorhanden ist, löst einen ENOENT-Fehler aus. Prüfe daher zuerst mit existsSync, ob sie existiert. Das Beispiel verwendet condition ? a : b, das a zurückgibt, wenn die Bedingung wahr ist, und b, wenn sie falsch ist.
import { existsSync, readFileSync } from 'node:fs';
const scores = existsSync('scores.json')
? JSON.parse(readFileSync('scores.json', 'utf8'))
: [];
console.log(scores.length);Ohne 'utf8' erhältst du einen Buffer, also die rohen Bytes der Datei, statt einer Zeichenkette.
Aufgabe
EinfachIn diesem Schritt wird das vorbereitete Befehlszeilenprogramm für Notizen des Kurses geöffnet, nicht deine Projektdateien aus CommonJS Modules (einschließlich legacy/stats.cjs). Deine frühere Arbeit bleibt in ihrer eigenen Lektion. Lies die bereitgestellten Dateien, bevor du store.js bearbeitest. Diese Kopie enthält alle bisherigen Befehle sowie einen neuen Befehl clear.
Zurzeit beginnt jeder Durchlauf mit denselben drei Notizen, die in store.js stehen. Deine Notizen sollen stattdessen aus einer Datei stammen: notes.json, die du in Files öffnen kannst.
- Ersetze in
store.jsdie feste Liste mit drei Notizen. Dienotesdes Speichers müssen das innotes.jsongespeicherte Array enthalten: Lies die Datei als Text und wandle dann den JSON-Text in ein Array um. - Wenn
notes.jsonnicht existiert, startet der Speicher stattdessen mit einem leeren Array, ohne mit einem Fehler abzubrechen. Prüfe, ob die Datei existiert, bevor du sie einliest.
notes.json beginnt mit zwei Notizen. Daher gibt node notes.js list Folgendes aus:
Notes for you
1. Buy milk
2. Call AdaWenn notes.json nicht vorhanden ist, gibt es Folgendes aus:
Notes for you
No notes yetDu änderst nur store.js. notes.js gibt bereits No notes yet aus, wenn der Speicher leer ist.
Probiere es aus: Gib list in das Feld nach $ node notes.js ein und drücke die Eingabetaste. Du siehst die beiden Notizen aus der Datei. Gib dann clear ein. Dieser Befehl ist bereits in notes.js enthalten: Er löscht notes.json und gibt Deleted notes.json aus. Gib erneut list ein: Du siehst No notes yet. Bevor du auf „Prüfen“ drückst, klicke auf „Dateien zurücksetzen“, um notes.json wiederherzustellen, denn die Prüfungen benötigen diese Datei.
Probier es selbst
// Lade die Notizen aus notes.json statt aus dieser Liste.
const store = {
notes: ['Buy milk', 'Call Ada', 'Water the plants'],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
export default store;
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
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