Menu
CoddyTech

Leggere un file

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

Ogni esecuzione inizia con le stesse tre note, perché si trovano solo in memoria.

readFileSync(path, 'utf8') da node:fs legge un file come stringa. Un file di note contiene JSON, un formato di testo per i dati scritto come gli array e gli oggetti JavaScript, e JSON.parse trasforma quel testo in un array. La lettura di un file che non esiste genera un errore ENOENT, quindi controlla prima con existsSync. L'esempio usa condition ? a : b, che restituisce a quando la condizione è vera e b quando è falsa.

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

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

Senza 'utf8' ottieni un Buffer, i byte grezzi del file, invece di una stringa.

challenge icon

Sfida

Facile

Questo passaggio apre il progetto dello strumento da riga di comando per le note preparato per il corso, anziché i file del tuo progetto di Moduli CommonJS (incluso legacy/stats.cjs). Il lavoro precedente resta nella sua lezione. Leggi i file forniti prima di modificare store.js. Questa copia contiene tutti i comandi visti finora, più un nuovo comando clear.

Al momento, ogni esecuzione inizia con le stesse tre note scritte in store.js. Le tue note dovrebbero invece provenire da un file: notes.json, che puoi aprire in Files.

  1. In store.js, sostituisci l'elenco fisso delle tre note. notes dell'archivio deve contenere l'array salvato in notes.json: leggi il file come testo, poi converti il testo JSON in un array.
  2. Se notes.json non esiste, l'archivio inizia con un array vuoto invece di interrompersi con un errore. Controlla che il file esista prima di leggerlo.

notes.json inizia con due note, quindi node notes.js list stampa:

Notes for you
1. Buy milk
2. Call Ada

Se notes.json non esiste, stampa:

Notes for you
No notes yet

Modifichi solo store.js. notes.js stampa già No notes yet quando l'archivio è vuoto.

Prova: digita list nel riquadro dopo $ node notes.js e premi Invio. Vedrai le due note del file. Poi digita clear. Questo comando è già presente in notes.js: elimina notes.json e stampa Deleted notes.json. Digita di nuovo list: vedrai No notes yet. Prima di premere «Verifica», premi Reimposta file per ripristinare notes.json, perché i controlli ne hanno bisogno.

Provalo tu

// Carica le note da notes.json invece che da questa lista.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di Node.js

Esercitati da solo: Playground Express