Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Ten 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.

  1. W pliku store.js, po tym, jak add umieści nową notatkę w tablicy, zapisz całą tablicę z powrotem do notes.json w 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.
  2. W pliku notes.js, w gałęzi add, zastąp wiersz, który wyświetla Adding: .... Teraz wyświetla on tylko Saved note , numer nowej notatki i kropkę. Gdy w pliku notes.json znajdują się dwie notatki, polecenie node notes.js add Buy bread wyświetla:
    Saved note 3.
    a w pliku notes.json znajduje się wtedy:
    [
      "Buy milk",
      "Call Ada",
      "Buy bread"
    ]
  3. Jeśli plik notes.json nie istnieje, add go utworzy. Po użyciu clear polecenie node notes.js add Call Ada wyświetli Saved note 1., a list pokaże wtedy 1. 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

Poćwicz samodzielnie: Edytor online Express