Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Utilizzo dei File come Semplice Archivio | Sezione
Fondamenti di Node.js

bookUtilizzo dei File come Semplice Archivio

Scorri per mostrare il menu

Finora hai imparato a:

  • Leggere dati da un file;
  • Scrivere dati in un file;
  • Aggiungere nuovo contenuto.

Ora è il momento di utilizzare i file come un sistema di archiviazione semplice.

Perché Abbiamo Bisogno di Dati Strutturati

Archiviare testo semplice non è sufficiente per applicazioni reali.

Ad esempio:

First note
Second note

Questo è difficile da gestire perché:

  • Non possiamo aggiornare facilmente una nota specifica;
  • Non possiamo organizzare i dati;
  • Non possiamo aggiungere informazioni extra.

Utilizzo di JSON per l'Archiviazione

Per archiviare dati strutturati, utilizziamo JSON.

JSON appare come un oggetto JavaScript:

[
  { "text": "First note" },
  { "text": "Second note" }
]

Questo formato ci permette di:

  • Archiviare più elementi;
  • Organizzare i dati in modo chiaro;
  • Lavorare con essi nel codice.

Passo 1: Leggere Dati da un File

const fs = require('fs');

const data = fs.readFileSync('notes.json', 'utf-8');

Questo restituisce una stringa.

Passo 2: Convertire JSON in JavaScript

const notes = JSON.parse(data);

Ora notes è un vero array con cui possiamo lavorare.

Passo 3: Aggiornare i Dati

notes.push({ text: 'New note' });

Aggiungiamo una nuova nota all'array.

Passo 4: Salvare i Dati nel File

fs.writeFileSync('notes.json', JSON.stringify(notes));
  • JSON.stringify converte JavaScript nuovamente in JSON;
  • il file viene aggiornato con i nuovi dati.

Esempio Completo

const fs = require('fs');

// Read file
const data = fs.readFileSync('notes.json', 'utf-8');

// Convert to JS
const notes = JSON.parse(data);

// Update data
notes.push({ text: 'Learn Node.js' });

// Save back
fs.writeFileSync('notes.json', JSON.stringify(notes));

Gestione della Prima Esecuzione (File Vuoto)

Se il file non esiste o è vuoto, l'applicazione si bloccherà.

Possiamo risolvere questo problema iniziando con un array vuoto:

let notes = [];

try {
  const data = fs.readFileSync('notes.json', 'utf-8');
  notes = JSON.parse(data);
} catch (error) {
  notes = [];
}
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 24

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 24
some-alt