logo logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Biadets Blog

MySQL in Node.js

MySQL è uno dei database più diffusi al mondo e può essere facilmente integrato con Node.js tramite apposite librerie. Grazie a MySQL, possiamo salvare, modificare e gestire dati in modo semplice, mantenendo ordine nelle nostre applicazioni. Con Node.js e MySQL puoi:

  • Collegarti a un database e inviare query SQL.
  • Inserire, leggere, aggiornare o eliminare dati nelle tabelle del database.
  • Usare i dati dentro la tua app o il tuo sito web.

Installare MySQL

Per gestire il backend del proprio sito web con MySQL, bisogna prima installarlo. Se hai già un hosting gestito, probabilmente MySQL è già installato nel server. Se stai lavorando in locale su un dispositivo, allora è necessario eseguire il download.

Per installare MySQL, vai al sito https://dev.mysql.com/downloads/mysql/ per scaricare l'installer per Mac, Windows o Linux.

Per prima cosa, seleziona l'ultima versione e il sistema operativo. Scarica la versione adatta al tuo dispositivo (x86 oppure ARM). Apri l'installer e segui le indicazioni. Ti chiederà di scegliere una password per accedere al database.

Una volta installato MySQL, puoi attivare il server MySQL in questo modo:

  • Su Mac, apri le Impostazioni di Sistema e cerca "MySQL". Poi clicca "Start MySQL Server". 
  • Su Windows, dal menu Start, cerca "MySQL" e apri "MySQL Command Line Client".
Sia su Mac che su Windows, puoi utilizzare il Terminale (o Prompt dei comandi) ed eseguire la seguente istruzione:
mysql -u root -p

Ti verrà chiesta la password del database, scelta al momento dell'installazione di MySQL.

Dal terminale, puoi eseguire istruzioni base di MySQL, come creare il primo database. Per farlo, utilizziamo la seguente istruzione:

CREATE DATABASE esempio;

Utilizzare MySQL in Node.js

Per utilizzare MySQL all'interno di un'applicazione in Node.js, bisogna prima installare il modulo mysql. Per farlo, basta utilizzare npm all'interno della cartella del progetto (abbiamo visto in dettaglio l'installazione dei moduli nella lezione I moduli in Node.js).

npm install mysql

Stabilire la connessione al database

Il primo passo per utilizzare MySQL in Node.js è importare il modulo appena installato. Per farlo, utilizziamo l'istruzione require:

const mysql = require("mysql");
Prova

Una volta incluso il modulo, utilizziamo la funzione createConnection() per connetterci al database. Questa funzione deve contenere come argomenti le credenziali del database, e restituisce l'oggetto di connessione.

const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "la_tua_password"
});

Ricorda di inserire la password che hai scelto al momento dell'installazione di MySQL. Ora l'oggetto con contiene la connessione al database.

Ora puoi utilizzare connect() per controllare se la connessione è stata effettuata correttamente.

con.connect(function (err) {
  if (err) throw err;
  console.log("Connesso al database");
});
Prova

Eseguire query SQL

Ora che abbiamo stabilito la connessione con MySQL, possiamo provare a utilizzare Node.js per eseguire query SQL, ovvero istruzioni eseguite nel nostro database.

Utilizziamo l'istruzione con.query() per eseguire una query SQL.

Ad esempio, possiamo creare un database nuovo direttamente in Node.js:

const mysql = require("mysql");
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "la_tua_password"
});

con.connect(function (err) {
  if (err) throw err;
  console.log("Connesso al database");

  con.query("CREATE DATABASE IF NOT EXISTS esempio;", function (err, result) {
    if (err) throw err;
    console.log("Database creato correttamente");
  });
});
Prova

Nell'esempio:

  • Includiamo il modulo mysql necessario per gestire i database in Node.js.
  • Creiamo l'oggetto con che contiene la connessione al database, attraverso le credenziali.
  • Eseguiamo la connessione al database attraverso con.connect(). Se c'è un errore, il programma termina automaticamente attraverso throw err.
  • Eseguiamo una query SQL nel database utilizzando con.query(). In questo caso, vogliamo creare un database chiamato "esempio". Utilizziamo IF NOT EXISTS per fare in modo che, se il database già esiste, non venga ricreato.
  • Una volta eseguita la query SQL, il programma esegue la function(err, result).

Nota: tutte le istruzioni SQL eseguite tramite Node.js devono terminare sempre con ";". Se non si aggiunge il punto e virgola finale, Node.js lo interpreterà come errore.

Chiudere la connessione

Dopo aver eseguito tutte le operazioni con MySQL, è importante chiudere la connessione al database. Questo libera le risorse e riduce il rischio di lasciare connessioni aperte che potrebbero essere sfruttate o causare problemi di prestazioni.

con.end((error) => {
  if (err) throw err;
  console.log("Connessione MySQL chiusa");
});
Prova

Prova!Completa gli spazi vuoti con il testo appropriato.
// Connetti il database con MySQL in Node.js
const mysql = require("");

const con = mysql.({
  host: "localhost",
  user: "root",
  password: "la_tua_password"
});

Prova!Scegli l'opzione corretta tra quelle elencate.
// Esegui una query SQL con Node.js
_____________("CREATE DATABASE esempio;", function (err, result) {
  if (err) throw err;
});