Zapisywanie pliku
Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 14 z 33.
add zapomina o notatce, gdy tylko program się kończy.
writeFileSync(path, text) zapisuje plik, zastępując całą jego zawartość. JSON.stringify zamienia tablicę na tekst JSON, a null, 2 wstawia wcięcia z dwóch spacji, dzięki czemu zawartość pliku jest czytelna.
import { writeFileSync } from 'node:fs';
const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));Plik zawsze zawiera całą tablicę: wczytaj notatki, dodaj jedną i zapisz je wszystkie ponownie. W store.js add jest metodą obiektu store. Wewnątrz metody this oznacza sam obiekt, więc this.notes to tablica obiektu store. Przekazanie samej tablicy powoduje błąd, ponieważ plik przechowuje tekst.
Wyzwanie
ŁatwyTen krok otwiera przygotowany w kursie projekt narzędzia wiersza poleceń do obsługi notatek, a nie pliki projektu z lekcji Odczytywanie pliku (w tym store.js). Twoja wcześniejsza praca pozostaje w swojej lekcji. Przed edycją store.js przeczytaj dostarczone pliki. Ta kopia zawiera narzędzie do obsługi notatek z odczytem pliku.
add nadal zapomina notatkę po zakończeniu programu. Zadbaj o to, aby każda notatka była zapisywana w notes.json, dzięki czemu list pokaże ją przy następnym uruchomieniu.
- W pliku
store.js, po tym, jakaddumieści nową notatkę w tablicy, zapisz całą tablicę z powrotem donotes.jsonw formacie JSON. Zapisz wszystkie notatki, nie tylko nową: zapis do pliku zastępuje całą jego dotychczasową zawartość. Zastosuj wcięcie JSON o szerokości dwóch spacji, aby plik był łatwy do odczytania w aplikacji Files. - W pliku
notes.js, w gałęziadd, zastąp wiersz, który wyświetlaAdding: .... Teraz wyświetla on tylkoSaved note, numer nowej notatki i kropkę. Gdy w plikunotes.jsonznajdują się dwie notatki, polecenienode notes.js add Buy breadwyświetla:a w plikuSaved note 3.notes.jsonznajduje się wtedy:[ "Buy milk", "Call Ada", "Buy bread" ] - Jeśli plik
notes.jsonnie istnieje,addgo utworzy. Po użyciuclearpolecenienode notes.js add Call AdawyświetliSaved note 1., alistpokaże wtedy1. Call Ada.
Wypróbuj: wpisz add Buy bread w polu po $ node notes.js i naciśnij Enter. Zobaczysz Saved note 3.. Wpisz list: Buy bread jest teraz notatką numer 3, mimo że to nowe uruchomienie programu. Otwórz notes.json w aplikacji Files, aby zobaczyć zapisaną tablicę. Następnie wpisz clear, które usuwa plik, a potem add Call Ada: zobaczysz Saved note 1..
Spróbuj swoich sił
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;
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