← Livello 4 – Data pro

Lezione 4 di 6 ⏱ 45 minuti Premium

SQLite – un database in un singolo file

Installa SQLite in Node.js e salva la tua prima riga in una tabella.

Cos’è SQLite

SQLite è un database salvato in un singolo file (es. web.db). Non devi installare nessun grande server – ideale per imparare e progetti più piccoli. I dati al suo interno sopravvivono a un riavvio di Node.js.

In Node.js useremo il pacchetto better-sqlite3:

cd my-server
npm install better-sqlite3

Te lo mostro: una tabella e il primo record

In server.js (o un nuovo database.js che importi):

const Database = require("better-sqlite3");
const db = new Database("web.db");

// Create the table if it doesn't exist yet
db.exec(`
  CREATE TABLE IF NOT EXISTS vzkazy (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    jmeno TEXT NOT NULL,
    text TEXT NOT NULL,
    vytvoreno TEXT DEFAULT CURRENT_TIMESTAMP
  )
`);

// Insert one row
const vloz = db.prepare("INSERT INTO vzkazy (jmeno, text) VALUES (?, ?)");
vloz.run("Martin", "First message in the database! 🎉");

// Read all rows
const vse = db.prepare("SELECT * FROM vzkazy").all();
console.log(vse);

Esegui node server.js (o uno script di test breve). Vedrai un array di oggetti nella console. Un file chiamato web.db appare nella cartella del progetto – quello è l’intero database.

💡

SQL in breve: CREATE TABLE = una nuova tabella (come un foglio in Excel). INSERT = aggiungi una riga. SELECT = leggi dati. I punti interrogativi ? in prepare proteggono dalla SQL injection – non inserire mai testo utente direttamente in una stringa di query!

Ora tocca a te 💪

  1. Installa better-sqlite3 nella cartella del tuo server.
  2. Crea una tabella vzkazy seguendo l’esempio (colonne: id, jmeno, text, vytvoreno).
  3. Inserisci 3 messaggi di test con INSERT.
  4. Ferma lo script, eseguilo di nuovo, e fai di nuovo SELECT – i dati ci sono ancora?
  5. Aggiungi web.db a .gitignore (in produzione, ogni server ha il proprio database; a volte viene esportato separatamente).

Controllo: Il file web.db esiste, e i dati restano dopo un riavvio. Nella prossima lezione collegheremo tutto il libro degli ospiti tramite un’API.

Cosa porti via da questa lezione