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 💪
- Installa
better-sqlite3nella cartella del tuo server. - Crea una tabella
vzkazyseguendo l’esempio (colonne: id, jmeno, text, vytvoreno). - Inserisci 3 messaggi di test con
INSERT. - Ferma lo script, eseguilo di nuovo, e fai di nuovo
SELECT– i dati ci sono ancora? - Aggiungi
web.dba.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
- SQLite = un database nel file
web.db. CREATE TABLE,INSERT,SELECT– le basi di SQL.- Query parametrizzate (
?) per sicurezza.
© 2026 Ing. Martin Polak / AlgoRhino · Condizioni d'uso dei contenuti