> For the complete documentation index, see [llms.txt](https://learn.ziomark.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.ziomark.xyz/javascript/node.js/parte-2-integrazione-con-sqlite.md).

# Parte 2: Integrazione con SQLite

Benvenuti a questa lezione su ZioMark's HUB, dove esploreremo come utilizzare Node.js in combinazione con SQLite per creare applicazioni web che interagiscono con un database.

### La storia di SQLite

SQLite è un motore di database relazionale leggero che, a differenza di altri sistemi di gestione di database come MySQL o PostgreSQL, non è basato su un'architettura client-server. SQLite è incorporato direttamente nei programmi. Il progetto è stato avviato nel 2000 da [D. Richard Hipp ](https://en.wikipedia.org/wiki/D._Richard_Hipp)e si è diffuso ampiamente per la sua affidabilità, semplicità e la natura open source, essendo un database ideale per dispositivi embedded, applicazioni per desktop e siti web che necessitano di un setup semplice senza l'onere di gestire un database server separato.

### Cos'è SQLite?

SQLite è un database SQL completo archiviato in un singolo file cross-platform. Supporta gran parte dello standard SQL e non richiede una configurazione separata del server, processo o sistema operativo. È molto usato per applicazioni leggere, soprattutto dove la semplicità e la minima configurazione sono essenziali.

### Integrare SQLite con Node.js

Per utilizzare SQLite con Node.js, possiamo utilizzare il modulo npm chiamato `sqlite3`, che fornisce un'interfaccia asincrona, non bloccante per interagire con il database SQLite.

#### Installazione

Prima di iniziare, assicurati di avere Node.js installato. Poi installa il pacchetto `sqlite3` usando npm:

```bash
npm install sqlite3
```

### Esercizio Pratico: Creare e Interrogare un Database

Per il nostro esercizio, creeremo un semplice database SQLite che gestisce dati degli utenti e scriviamo uno script Node.js per interagire con esso.

#### Passaggi dell'Esercizio

1. **Crea un file `database.js`**: Questo file conterrà il codice per configurare il database.
2. **Inizializza il Database**: Apri il tuo editor di testo e incolla il seguente codice in `database.js`:

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

// Connessione al database SQLite
let db = new sqlite3.Database('./users.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connessione al database riuscita.');
});

// Crea una tabella
db.run(`CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
)`);

// Chiudi la connessione al database
db.close((err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connessione al database chiusa.');
});
```

3. **Esegui lo Script**: Apri il terminale, naviga alla cartella contenente `database.js` e digita:

```bash
node database.js
```

Questo script creerà un database chiamato `users.db` con una tabella `users`. Se il database esiste già, lo script semplicemente si connetterà a esso.

{% hint style="info" %}
Consigliamo la lettura di <https://learn.ziomark.xyz/sql/parte-1-introduzione-a-sql> per conoscere meglio il funzionamento della sintassi SQL (che viene utilizzata anche da sqlite)
{% endhint %}

### Conclusione

Con questa lezione, hai appreso come integrare SQLite in un'applicazione Node.js, creando e gestendo un database direttamente dal tuo codice JavaScript. Queste competenze sono fondamentali per costruire applicazioni web che richiedono una persistenza dei dati efficiente e leggera.

Continua a sperimentare con SQLite e Node.js per esplorare ulteriori possibilità e perfezionare le tue abilità di sviluppo backend.
