← Nivå 4 – Data pro

Leksjon 4 av 6 ⏱ 45 minutter Premium

SQLite – en database i én fil

Installer SQLite i Node.js og lagre din første række i en tabel.

Hva SQLite er

SQLite er en database lagret i én fil (f.eks. web.db). Du behøver ikke installere nogen stor server – ideelt til læring og mindre projekter. Data i den overlever en Node.js-genstart.

I Node.js bruker vi pakken better-sqlite3:

cd my-server
npm install better-sqlite3

Jeg viser deg: en tabel og den første post

I server.js (eller en ny database.js, som du importerer):

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);

Kjør node server.js (eller et kort testscript). Du ser et array af objekter i konsollen. En fil kalt web.db vises i din projektmappe – det er hele databasen.

💡

SQL i en nøddeskal: CREATE TABLE = en ny tabel (som et ark i Excel). INSERT = legg til en række. SELECT = les data. Spørgsmålstegnene ? i prepare beskytter mod SQL injection – indsett aldrig brukertekst direkte i en forespørgselsstreng!

Nå er det din tur 💪

  1. Installer better-sqlite3 i din servermappe.
  2. Lag en vzkazy-tabel etter eksemplet (kolonner: id, jmeno, text, vytvoreno).
  3. Indsett 3 testmeldinger med INSERT.
  4. Stop scriptet, kjør det igen, og SELECT én gang til – er dataene fortsatt der?
  5. Legg til web.db til .gitignore (i produktion har hver server sin egen database; noen gange eksporteres den separat).

Sjekk: Filen web.db eksisterer, og data forblir etter en genstart. I neste leksjon forbinder vi hele gjesteboken til den gjennom en API.

Dette tar du med deg fra leksjonen