LOGO Lionel Groulx

Site Web du cours « Programmation de Systèmes »

Node.js Chapitre 5
Se connecter à une Base De Données SQL et lancer une requête :

Les exploitations de bases de données sont fréquentes dans les applications Web. Cependant, les types de bases de données utilisées tendent à changer. Si auparavant un site web en PHP exploitait souvent une BDD de type SQL (comme MySQL ou MariaDB), de plus en plus la montée en force du JavaScript (Node.js du côté serveur) met en avant ce que l’on appelle les BDD NoSQL, comme par exemple MongoDB (voir Références), mais les avis restent partagés quant à savoir lequel privilégier, selon le type d’application à bâtir (voir Références).

Cependant dans le cadre de ce cours, nous faisons le choix de continuer à travailler avec SQL (MySQL ou MariaDB).

5.1.   Installation du module mysql

Un module existant va gérer nos usages de BDD MySQL ou MariaDB (gestion identique):

npm install mysql

Plus de détails sur ce module : (voir Références)

5.2.   Connexion à une base

Une fois le module installé, une fois MySQL (ou MariaDB) actif, votre compte créé et une fois votre base de données créée, voici comment s’y connecter :

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'MonNomDeCompte',

  password : 'MonMotDePasse',

  database : 'MaBaseDeDonnees'

});

 

connection.connect(function (err) {

  if (err) throw err;

  console.log('Vous êtes connecté à votre BDD...');

});

5.3.   Exécution d’une requête SQL

Une fois connecté à la base, il ne nous reste plus qu’à connaître la syntaxe pour lancer une requête SQL :

var querystring = 'SELECT type FROM utilisateurs WHERE login = "'+username+'" AND password = "'+password+'"';

var query = connection.query(querystring, function(err, rows, fields) {

  if (!err) {

    console.log("Ma requête est passée !");

  };

});

Ci-dessus, un exemple de requête de SELECT avec double critère (voir le Référentiel SQL). Mais maintenant, on va vouloir chercher à exploiter les résultats de nos requêtes.

5.4.   Exploitation des résultats d’une requête SQL

Si l’on lance une requête de SELECT (comme ci-dessus), on va pouvoir exploiter 3 paramètres :

-          err

-          rows

-          fields

« err » nous dira si l’exécution de la requête s’est bien passé (FALSE).

« rows » contiendra tous les enregistrements résultants de notre SELECT si celui-ci s’est bien passé.

« fields » contiendra tous les noms de champ du résultat de notre SELECT si celui-ci s’est bien passé.

Pour mieux visualiser leur structure, je ne saurais trop conseiller de commencer par :

var querystring = 'SELECT * FROM utilisateurs;';

var query = connection.query(querystring, function(err, rows, fields) {

  if (!err) {

    console.log("Ma requête est passée !");

    console.log(rows);

    console.log(fields);

  };

});

On peut après cela exploiter ces structures de données telles que les console.log nous les montrent.