Jak používat SQLite s Node.js na Ubuntu 22.04

Photo of author

By etechblogcz

Node.js představuje populární platformu pro běh JavaScript kódu, která se hojně využívá při vývoji serverových aplikací a webových služeb. SQLite je zase volně dostupný a open-source relační databázový systém, který se skvěle hodí pro menší až středně velké databázové projekty, webové stránky i mobilní aplikace. Tato kombinace nám tak otevírá cestu k tvorbě efektivních a jednoduše spravovatelných aplikací na operačním systému Ubuntu 22.04.

V tomto průvodci si ukážeme, jak nainstalovat a nastavit SQLite v kombinaci s Node.js na Ubuntu 22.04. Detailně probereme základní principy interakce s SQLite databází za pomoci Node.js a naučíte se provádět běžné databázové operace jako je vytváření, čtení, aktualizace a odstraňování dat.

1. Instalace Node.js a npm

Node.js je klíčová pro práci se SQLite v našem vývojovém prostředí. Pokud Node.js nemáte nainstalovaný, postupujte prosím podle následujících instrukcí:

1. Spusťte terminál: Použijte klávesovou zkratku Ctrl+Alt+T.
2. Zahajte instalaci s pomocí apt:

sudo apt update
   sudo apt install nodejs

3. Verifikujte instalaci:

node -v
   npm -v

Pokud se zobrazí aktuální verze Node.js a npm, instalace proběhla v pořádku.

2. Instalace modulu sqlite3

Modul sqlite3 funguje jako spojovací článek mezi Node.js a SQLite. Umožňuje navázat spojení s SQLite databázemi a pracovat s nimi.

1. Otevřete terminál.
2. Instalujte modul s využitím npm:

npm install sqlite3 

3. Vytvoření SQLite databáze

Vytvořte nový soubor pro vaši databázi. Můžete použít jakýkoliv název souboru s příponou .db. Například:

touch mydatabase.db

4. Vytvoření Node.js aplikace

Založte nový soubor s příponou .js (například app.js) a vložte do něj následující kód. Tento kód naváže spojení s databází SQLite, vytvoří novou tabulku a následně do této tabulky vloží data.

const sqlite3 = require('sqlite3').verbose();

// Otevření spojení s databází
const db = new sqlite3.Database('./mydatabase.db');

// Vytvoření tabulky
db.run(`CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    email TEXT
)`, (err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Tabulka users byla vytvořena.');
});

// Vkládání dat do tabulky
db.run(`INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com')`, (err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Data byla vložena do tabulky users.');
});

// Uzavření spojení s databází
db.close((err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Spojení s databází bylo uzavřeno.');
});

5. Spuštění aplikace

Spusťte vaši Node.js aplikaci v terminálu:

node app.js 

Výstup v terminálu by měl potvrdit úspěšné vytvoření tabulky users a vložení dat.

6. Základní operace s databází

Čtení dat:

db.all('SELECT * FROM users', (err, rows) => {
    if (err) {
        return console.error(err.message);
    }
    rows.forEach((row) => {
        console.log(row.id + " - " + row.name + " - " + row.email);
    });
});

Aktualizace dat:

db.run(`UPDATE users SET email = 'john.doe@newdomain.com' WHERE id = 1`, (err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Email pro uživatele s ID 1 byl aktualizován.');
});

Mazání dat:

db.run(`DELETE FROM users WHERE id = 1`, (err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Uživatel s ID 1 byl odstraněn.');
});

7. Pokročilé funkce

SQLite v kombinaci s Node.js nabízí řadu pokročilých funkcí, například:

  • Transakce: Zajišťují integritu dat při provádění více databázových operací.
  • Výjimky: Usnadňují zpracování chyb a výjimek v kódu.
  • Prepared statements: Zvyšují výkon a bezpečnost databáze.
  • Asynchronní operace: Poskytují nástroje pro efektivní práci s databází v asynchronním prostředí.

Příklad použití transakcí:

db.serialize(() => {
    db.run(`BEGIN TRANSACTION`);

    // Vložení dat do databáze 
    db.run(`INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane.doe@example.com')`, (err) => {
        if (err) {
            return console.error(err.message);
        }
    });

    // Kontrola chyb
    if (err) {
        db.run(`ROLLBACK`);
        return console.error(err.message);
    }

    // Potvrzení transakce
    db.run(`COMMIT`);
    console.log('Data byla vložena do tabulky users.');
});

Závěr

Spojení Node.js a SQLite na Ubuntu 22.04 je velmi efektivní pro vývoj aplikací. Tento průvodce vám poskytl základní znalosti o instalaci, konfiguraci a interakci s SQLite databází za pomoci Node.js. SQLite nabízí celou řadu dalších funkcí jako triggery, views a další pokročilé koncepty, které vám umožní vyvíjet sofistikovanější databázové aplikace.

Ať už pracujete na malém webu, mobilní aplikaci nebo rozsáhlé serverové aplikaci, SQLite vám nabízí výkonné nástroje pro správu dat, které vám zjednoduší vývoj a zefektivní vaši práci.

Často kladené otázky (FAQ)

1. Jaké jsou přednosti použití SQLite s Node.js?

SQLite je lehký, rychlý a snadno se integruje do Node.js aplikací. Je to skvělá volba pro projekty, které nepotřebují komplexní relační databázové systémy a kde není potřeba sdílet data mezi mnoha uživateli.

2. Je možné v Node.js aplikaci využívat více SQLite databází současně?

Ano, můžete v rámci jedné Node.js aplikace současně otevírat spojení k více SQLite databázím. Každá databáze bude mít své specifické nastavení a spojení.

3. Jak mohu přistupovat k datům v SQLite z webového prohlížeče?

Pro přístup k SQLite datům z webového prohlížeče budete potřebovat webový server (například Express.js) a API, které zprostředkuje komunikaci mezi klientem a serverem. API by pak s pomocí modulu sqlite3 mohlo číst data z databáze a zasílat je klientovi ve formátu, kterému prohlížeč rozumí (např. JSON).

4. Jaká je maximální velikost databáze v SQLite?

SQLite databáze nemá pevný limit velikosti, ale je limitována dostupným úložným prostorem.

5. Jak importovat data z jiné databáze do SQLite?

Existuje několik způsobů:

  • Importní nástroje: Některé nástroje pro správu databází vám umožňují exportovat data z jiných databázových systémů a importovat je do SQLite.
  • Vlastní skripty: Můžete si vytvořit Node.js skripty, které data načtou z jiné databáze a vloží je do SQLite.
  • Příkazová řádka SQLite: Příkazová řádka SQLite umožňuje import dat z formátů CSV a dalších.

6. Může být SQLite používán s jinými programovacími jazyky?

Ano, SQLite je podporován velkým množstvím programovacích jazyků, jako jsou Python, PHP, Java a mnoho dalších.

7. Jaké jsou alternativy k SQLite pro Node.js aplikace?

Existuje mnoho databázových systémů, které můžete využít v Node.js aplikacích:

  • MySQL: Oblíbený relační databázový systém s vysokým výkonem.
  • PostgreSQL: Výkonná relační databáze s pokročilými funkcemi a podporou transakcí.
  • MongoDB: NoSQL databázový systém pro ukládání komplexních dat a objektů.

8. Kde najdu další informace o SQLite a Node.js?

9. Jak se můžu dozvědět více o databázových systémech?

K dispozici je mnoho online zdrojů, kurzů a knih, které vás mohou naučit o databázových systémech. Doporučujeme také sledovat databázové konference a workshopy.

10. Je SQLite vhodný pro produkční prostředí?

SQLite je obecně bezpečný, ale je důležité dodržovat osvědčené bezpečnostní postupy, jako je správné nastavení oprávnění k souborům databáze, ochrana před SQL injection a další bezpečnostní opatření.

Tagy: SQLite, Node.js, Ubuntu 22.04, databáze, databáze pro Node.js, databázové technologie, programování, back-end, serverové aplikace, webový vývoj, mobilní aplikace, programátorský tutoriál, databázové programování, technické tipy, návod, tutorial, open source