Node.js e Database: come interagire con MySQL e SQL Server

Il sempre più diffuso ambiente JavaScript Node.js può ormai contare su una dotazione di moduli sempre più ampia, tra di essi ve ne sono anche alcuni dedicati all'interazione con i database.

In questo articolo vedremo come è possibile interagire, attraverso Node.js, con il popolare Database Manager Open-Sorce MySQL ed il DBMS di casa Microsoft SQL Server.

Continua dopo la pubblicità...

Node.js e MySQL

In questo articolo vedremo come utilizzare node-mysql, una soluzione client concepita appositamente per l'implementazione del protocollo associato al noto DBMS.

Il modulo node-mysql potrà essere installato tramite il package manager di Node.js. Per installare il modulo sarà sufficiente lanciare il seguente comando da Terminale:

npm install mysql

Fatto questo, si potrà cominciare ad effettuare delle query a carico dei database gestiti inviandole direttamente tramite JavaScript; come prima operazione sarà necessario richiamare il modulo appena installato:

var mysql = require('mysql');

In secondo luogo si dovrà passare alla fase di connessione con il Database engine e quindi alla selezione del database da manipolare:

var connection = mysql.createConnection( {
  host : 'localhost',
  user : 'nome_utente',
  password : 'password_utente',
  database : 'nome_db'
} );
connection.connect();

Ora la strada per l'interazione sarà spianata e si potrà procedere con una prima query su una tabella a scelta:

var queryString = 'SELECT cmp FROM tbl ORDER By id DESC';

Per cui non resterà che passare alla fase di estrazione dei record senza dimenticare la gestione delle eccezioni;

connection.query(queryString, function(err, rows, fields) {
  if (err) throw err;
  for (var i in rows) {
      console.log('Valori: ', rows[i].cmp);
  }
});

Infine, una volta ottenuti i risultati previsti, sarà possibile chiudere la connessione liberando le risorse occupate:

connection.end();

Node.js e SQL Server

Anche Microsoft ha sviluppato dei driver per la connessione a SQL Server da applicazioni basate su Node.js; tali driver sono disponibili sotto licenza Open Source e potranno essere utilizzati liberamente una volta effettuato gratuitamente il download dall'apposito repository; in questo post presenterò un semplice esempio di connessione a cui seguirà una query con restituzione dei risultati.

var sql = require('node-sqlserver');

var conn_str = "Driver={SQL Server Native Client 11.0};
Server=(local);
Database=Archivio;
Trusted_Connection={Yes}";

sql.open(conn_str, function (err, conn) {
  if (err) {
    console.log("Impossibile stabilire una connessione!");
    return;
  }
  conn.queryRaw("SELECT A,B FROM Tb.Tb", function (err, results) {
    if (err) {
      console.log("Errore nell'esecuzione della query!");
      return;
    }
    for (var i = 0; i < results.rows.length; i++) {
      console.log("A: " + results.rows[i][0] + " B: " + results.rows[i][1]);
    }
  });
});

Per il successo dell'operazione è necessario scaricare il Client Native per l'accesso a SQL driver necessario per la connessione.

Appena qualche anno fa sarebbe stato inconcepibile anche solo pensare di poter interagire con una base di dati a partire da un ambiente client side basato su JavaScript, features come questa erano possibili soltanto attraverso tecnologie server side; una piccola rivoluzione resa possibile da Node.js.

I commenti degli utenti

I commenti sono sottoposti alle linee guida di moderazione e prima di essere visibili devono essere approvati da un moderatore.