Menu
CoddyTech

Odczytywanie pliku

Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 12 z 33.

Każde uruchomienie zaczyna się od tych samych trzech notatek, ponieważ istnieją tylko w pamięci.

readFileSync(path, 'utf8') z node:fs odczytuje plik jako ciąg znaków. Plik z notatkami zawiera JSON — format tekstowy danych zapisanych w postaci tablic i obiektów JavaScript — a JSON.parse zamienia ten tekst w tablicę. Odczytanie nieistniejącego pliku powoduje błąd ENOENT, dlatego najpierw sprawdź plik za pomocą existsSync. W przykładzie użyto wyrażenia condition ? a : b, które zwraca a, gdy warunek jest prawdziwy, i b, gdy jest fałszywy.

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

const scores = existsSync('scores.json')
    ? JSON.parse(readFileSync('scores.json', 'utf8'))
    : [];
console.log(scores.length);

Bez 'utf8' otrzymasz obiekt Buffer zawierający surowe bajty pliku zamiast ciągu znaków.

challenge icon

Wyzwanie

Łatwy

Ten krok otwiera przygotowany projekt narzędzia wiersza poleceń do notatek z kursu, a nie pliki projektu z lekcji CommonJS Modules (w tym legacy/stats.cjs). Twoja wcześniejsza praca pozostaje w swojej lekcji. Przed edycją store.js przeczytaj dostarczone pliki. Ta kopia zawiera wszystkie dotychczasowe polecenia oraz nowe polecenie clear.

Obecnie przy każdym uruchomieniu w store.js zapisane są te same trzy notatki. Zamiast tego notatki powinny pochodzić z pliku: notes.json, który możesz otworzyć w aplikacji Files.

  1. W pliku store.js zastąp stałą listę trzech notatek. notes w magazynie musi zawierać tablicę zapisaną w pliku notes.json: odczytaj plik jako tekst, a następnie zamień tekst JSON na tablicę.
  2. Jeśli plik notes.json nie istnieje, magazyn powinien rozpoczynać od pustej tablicy, zamiast kończyć działanie z błędem. Przed odczytaniem pliku sprawdź, czy on istnieje.

Plik notes.json zaczyna się od dwóch notatek, więc polecenie node notes.js list wyświetla:

Notes for you
1. Buy milk
2. Call Ada

Gdy nie ma pliku notes.json, wyświetla:

Notes for you
No notes yet

Zmieniać będziesz tylko plik store.js. Plik notes.js już wyświetla No notes yet, gdy magazyn jest pusty.

Wypróbuj: wpisz list w polu po $ node notes.js i naciśnij Enter. Zobaczysz dwie notatki z pliku. Następnie wpisz clear. To polecenie jest już w pliku notes.js: usuwa plik notes.json i wyświetla Deleted notes.json. Ponownie wpisz list: zobaczysz No notes yet. Zanim naciśniesz „Sprawdź”, naciśnij Reset files, aby przywrócić plik notes.json, ponieważ jest potrzebny do sprawdzenia.

Spróbuj swoich sił

// Wczytaj notatki z notes.json zamiast z tej listy.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy Node.js

Poćwicz samodzielnie: Edytor online Express