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.
Wyzwanie
ŁatwyTen 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.
- W pliku
store.jszastąp stałą listę trzech notatek.notesw magazynie musi zawierać tablicę zapisaną w plikunotes.json: odczytaj plik jako tekst, a następnie zamień tekst JSON na tablicę. - Jeśli plik
notes.jsonnie 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 AdaGdy nie ma pliku notes.json, wyświetla:
Notes for you
No notes yetZmieniać 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;
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy Node.js
1Uruchamianie JavaScript w Node
Witaj, NodeOdczytywanie poleceniaArgumenty wiersza poleceńPolecenia5Zdarzenia, dane wejściowe i pakiety
Nasłuchuj przed emisjąEmitery zdarzeńOdczytywanie danych wejściowych3Pliki
Tekst i wartości JSONOdczytywanie plikuZapisywanie tekstu JSONZapisywanie plikuUsuwanie notatkiPoćwicz samodzielnie: Edytor online Express