Menu
CoddyTech

Scrivere un file

Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 14 di 33.

add dimentica la nota non appena il programma termina.

writeFileSync(path, text) scrive un file, sostituendo tutto ciò che conteneva. JSON.stringify trasforma un array in testo JSON e null, 2 lo rientra di due spazi, così risulta facile da leggere in Files.

import { writeFileSync } from 'node:fs';

const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));

Il file contiene sempre l'intero array: carica le note, ne aggiunge una e le riscrive tutte. In store.js, add è un metodo dell'oggetto store. All'interno di un metodo, this è l'oggetto stesso, quindi this.notes è l'array di store. Passare direttamente l'array genera un errore, perché un file contiene testo.

challenge icon

Sfida

Facile

Questo passaggio apre il progetto dello strumento a riga di comando per le note preparato per il corso, anziché i file del tuo progetto di Lettura di un file (incluso store.js). Il lavoro precedente rimane nella sua lezione. Leggi i file forniti prima di modificare store.js. Questa copia contiene lo strumento per le note che legge i file.

add continua a dimenticare la nota quando il programma termina. Fai in modo che salvi ogni nota in notes.json, così list la mostra all'esecuzione successiva.

  1. In store.js, dopo che add aggiunge la nuova nota all'array, riscrivi l'intero array in notes.json come JSON. Scrivi tutte le note, non solo quella nuova: la scrittura su un file sostituisce tutto ciò che conteneva. Indenta il JSON con due spazi, così sarà facile da leggere in Files.
  2. In notes.js, nel ramo add, sostituisci la riga che stampa Adding: .... Ora stampa solo Saved note , il numero della nuova nota e un punto. Con le due note iniziali di notes.json, node notes.js add Buy bread stampa:
    Saved note 3.
    e notes.json contiene quindi:
    [
      "Buy milk",
      "Call Ada",
      "Buy bread"
    ]
  3. Se notes.json non esiste, add lo crea. Dopo clear, node notes.js add Call Ada stampa Saved note 1., e list mostra quindi 1. Call Ada.

Prova: digita add Buy bread nella casella dopo $ node notes.js e premi Invio. Vedrai Saved note 3.. Digita list: Buy bread è ora la nota 3, anche se si tratta di una nuova esecuzione. Apri notes.json in Files per vedere l'array salvato. Poi digita clear, che elimina il file, e add Call Ada: vedrai Saved note 1..

Provalo tu

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;

Tutte le lezioni di Fondamenti di Node.js

Esercitati da solo: Playground Express