Database di Azure per MySQL: usare Node.js per connettersi ai dati ed eseguire query

Questa guida introduttiva illustra come connettersi a un database di Azure per MySQL usando Node.js dalle piattaforme Windows, Ubuntu Linux e Mac. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database. Le procedure descritte in questo articolo presuppongono che si abbia familiarità con lo sviluppo con Node.js, ma non con Database di Azure per MySQL.

Prerequisiti

Questa guida introduttiva usa le risorse create in una delle guide seguenti come punto di partenza:

È anche necessario:

  • Installare il runtime di Node.js.
  • Installare il pacchetto mysql2 per connettersi a MySQL dall'applicazione Node.js.

Installare Node.js e il connettore MySQL

A seconda della piattaforma, seguire le istruzioni appropriate per installare Node.js. Usare npm per installare il pacchetto mysql2 e le relative dipendenze nella cartella del progetto.

Windows

  1. Visitare la pagina di download di Node.js e selezionare l'opzione di installazione di Windows desiderata.
  2. Creare una cartella di progetto locale, ad esempio nodejsmysql.
  3. Avviare il prompt dei comandi e passare alla cartella del progetto, ad esempio cd c:\nodejsmysql\
  4. Eseguire lo strumento NPM per installare la libreria mysql2 nella cartella del progetto.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql2
    "C:\Program Files\nodejs\npm" list
    
  5. Verificare l'installazione controllando il testo di output npm list per mysql2@1.3.5.

Linux (Ubuntu)

  1. Eseguire questi comandi per installare Node.js e la gestione pacchetti npm per Node.js.

    sudo apt-get install -y nodejs npm
    
  2. Eseguire questi comandi per creare una cartella di progetto mysqlnodejs e installare il pacchetto mysql2 nella cartella.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql2
    npm list
    
  3. Verificare l'installazione controllando il testo di output npm list per mysql2@1.3.5.

Mac OS

  1. Immettere i comandi seguenti per installare brew, una gestione pacchetti facile da usare per Mac OS X e Node.js.

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew install node
    
  2. Eseguire questi comandi per creare una cartella di progetto mysqlnodejs e installare il pacchetto mysql2 nella cartella.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql2
    npm list
    
  3. Verificare l'installazione controllando il testo di output npm list per mysql2@1.3.6. Il numero di versione può variare nel momento in cui vengono rilasciate nuove patch.

Ottenere informazioni di connessione

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per MySQL. Sono necessari il nome del server completo e le credenziali di accesso.

  1. Accedere al Portale di Azure.
  2. Nel riquadro a sinistra fare clic su Tutte le risorse e cercare il server creato, ad esempio myserver4demo.
  3. Fare clic sul nome server myserver4demo.
  4. Selezionare la pagina Proprietà del server. Annotare il Nome server e il nome di accesso dell'amministratore del server. Database di Azure per MySQL - Accesso dell'amministratore del server
  5. Se si dimenticano le informazioni di accesso per il server, passare alla pagina Panoramica per visualizzare il nome di accesso dell'amministratore del server e, se necessario, reimpostare la password.

Esecuzione del codice JavaScript in Node.js

  1. Incollare il codice JavaScript nei file di testo e salvarli in una cartella di progetto con estensione js, ad esempio C:\nodejsmysql\createtable.js or /home/username/nodejsmysql/createtable.js
  2. Avviare il prompt dei comandi o la shell Bash. Passare alla cartella del progetto cd nodejsmysql.
  3. Per eseguire l'applicazione, digitare il comando node seguito dal nome del file, ad esempio node createtable.js.
  4. In Windows, se l'applicazione Node non è presente nella variabile di ambiente PATH potrebbe essere necessario usare il percorso completo per avviare l'applicazione Node, ad esempio "C:\Program Files\nodejs\node.exe" createtable.js

Connettersi, creare tabelle e inserire dati

Usare il codice seguente per connettersi e caricare i dati usando le istruzioni SQL CREATE TABLE e INSERT INTO.

Il metodo mysql.createConnection() viene usato per l'interfaccia con il server MySQL. La funzione connect() viene usata per stabilire la connessione al server. La funzione query() viene usata per eseguire la query SQL sul database MySQL.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.

const mysql = require('mysql2');

var config =
{
    host: 'myserver4demo.mysql.database.azure.com',
    user: 'myadmin@myserver4demo',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) { 
    if (err) { 
        console.log("!!! Cannot connect !!! Error:");
        throw err;
    }
    else
    {
       console.log("Connection established.");
           queryDatabase();
    }   
});

function queryDatabase(){
       conn.query('DROP TABLE IF EXISTS inventory;', function (err, results, fields) { 
            if (err) throw err; 
            console.log('Dropped inventory table if existed.');
        })
       conn.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);', 
            function (err, results, fields) {
                if (err) throw err;
            console.log('Created inventory table.');
        })
       conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['banana', 150], 
            function (err, results, fields) {
                if (err) throw err;
            else console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
       conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['orange', 154], 
            function (err, results, fields) {
                if (err) throw err;
            console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
       conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['apple', 100], 
        function (err, results, fields) {
                if (err) throw err;
            console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
       conn.end(function (err) { 
        if (err) throw err;
        else  console.log('Done.') 
        });
};

Leggere i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT.

Il metodo mysql.createConnection() viene usato per l'interfaccia con il server MySQL. Il metodo connect() viene usato per stabilire la connessione al server. Il metodo query() viene usato per eseguire la query SQL sul database MySQL. La matrice dei risultati viene usata per contenere i risultati della query.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.

const mysql = require('mysql2');

var config =
{
    host: 'myserver4demo.mysql.database.azure.com',
    user: 'myadmin@myserver4demo',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) { 
        if (err) { 
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            readData();
        }   
    });

function readData(){
        conn.query('SELECT * FROM inventory', 
            function (err, results, fields) {
                if (err) throw err;
                else console.log('Selected ' + results.length + ' row(s).');
                for (i = 0; i < results.length; i++) {
                    console.log('Row: ' + JSON.stringify(results[i]));
                }
                console.log('Done.');
            })
       conn.end(
           function (err) { 
                if (err) throw err;
                else  console.log('Closing connection.') 
        });
};

Aggiornare i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL UPDATE.

Il metodo mysql.createConnection() viene usato per l'interfaccia con il server MySQL. Il metodo connect() viene usato per stabilire la connessione al server. Il metodo query() viene usato per eseguire la query SQL sul database MySQL.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.

const mysql = require('mysql2');

var config =
{
    host: 'myserver4demo.mysql.database.azure.com',
    user: 'myadmin@myserver4demo',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) { 
        if (err) { 
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            updateData();
        }   
    });

function updateData(){
       conn.query('UPDATE inventory SET quantity = ? WHERE name = ?', [200, 'banana'], 
            function (err, results, fields) {
                if (err) throw err;
                else console.log('Updated ' + results.affectedRows + ' row(s).');
        })
       conn.end(
           function (err) { 
                if (err) throw err;
                else  console.log('Done.') 
        });
};

Eliminare i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL DELETE.

Il metodo mysql.createConnection() viene usato per l'interfaccia con il server MySQL. Il metodo connect() viene usato per stabilire la connessione al server. Il metodo query() viene usato per eseguire la query SQL sul database MySQL.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.

const mysql = require('mysql2');

var config =
{
    host: 'myserver4demo.mysql.database.azure.com',
    user: 'myadmin@myserver4demo',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) { 
        if (err) { 
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            deleteData();
        }   
    });

function deleteData(){
       conn.query('DELETE FROM inventory WHERE name = ?', ['orange'], 
            function (err, results, fields) {
                if (err) throw err;
                else console.log('Deleted ' + results.affectedRows + ' row(s).');
        })
       conn.end(
           function (err) { 
                if (err) throw err;
                else  console.log('Done.') 
        });
};

Passaggi successivi