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.
Sfida
FacileQuesto 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.
- In
store.js, dopo cheaddaggiunge la nuova nota all'array, riscrivi l'intero array innotes.jsoncome 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. - In
notes.js, nel ramoadd, sostituisci la riga che stampaAdding: .... Ora stampa soloSaved note, il numero della nuova nota e un punto. Con le due note iniziali dinotes.json,node notes.js add Buy breadstampa:eSaved note 3.notes.jsoncontiene quindi:[ "Buy milk", "Call Ada", "Buy bread" ] - Se
notes.jsonnon esiste,addlo crea. Dopoclear,node notes.js add Call AdastampaSaved note 1., elistmostra quindi1. 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
1Eseguire JavaScript con Node
Ciao, NodeLeggere il comandoArgomenti della riga di comandoComandiEsercitati da solo: Playground Express