← Nivå 4 – Data pro

Lektion 4 av 6 ⏱ 45 minuter Premium

SQLite – en databas i en enda fil

Installera SQLite i Node.js och spara din första rad i en tabell.

Vad SQLite är

SQLite är en databas lagrad i en enda fil (t.ex. web.db). Du behöver inte installera någon stor server – idealiskt för att lära sig och mindre projekt. Data i den överlever en Node.js-omstart.

I Node.js använder vi paketet better-sqlite3:

cd my-server
npm install better-sqlite3

Jag visar: en tabell och första posten

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

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

Kör node server.js (eller ett kort testscript). Du ser en array av objekt i konsolen. En fil som heter web.db dyker upp i din projektmapp – det är hela databasen.

💡

SQL i korthet: CREATE TABLE = en ny tabell (som ett ark i Excel). INSERT = lägg till en rad. SELECT = läs data. Frågetecknen ? i prepare skyddar mot SQL injection – sätt aldrig in användartext direkt i en query-sträng!

Nu är det din tur 💪

  1. Installera better-sqlite3 i din servermapp.
  2. Skapa en vzkazy-tabell efter exemplet (kolumner: id, jmeno, text, vytvoreno).
  3. Sätt in 3 testmeddelanden med INSERT.
  4. Stoppa scriptet, kör det igen och SELECT en gång till – finns datan kvar?
  5. Lägg till web.db i .gitignore (i produktion har varje server sin egen databas; ibland exporteras den separat).

Kolla: Filen web.db finns och data finns kvar efter en omstart. I nästa lektion kopplar vi hela gästboken till den via ett API.

Det här tar du med dig från lektionen