Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site
Pendant longtemps pour interroger dans le cadre d'une page web, une base de données il fallait produire un script PHP.
Le développeur web devait donc apprendre le HTML, le CSS, Le JavaScript mais aussi le PHP ...
Désormais grâce à Node.js on peut manipuler une base de données via JS et en dehors du navigateur.
MySQL est un SGBD parmi d'autres.
Il existe des SGBD (Système de Gestion de Bases de Données) de type SQL (Structured Query Langage) et d'autres NoSQL.
Le SGBD de type SQL le plus connu est MySQL. Il est de type SQL car les requêtes doivent être écrites avec ce langage de requête.
Dans un autre tuto de mon site vous trouverez quelques chapitres sur MySQL.
J'y explique qu'une base de données MYSQL comprend 1 ou plusieurs tables ; que chaque table est structurée ; je précise les différents types de champs ;
j'indique les différentes types de requêtes pour consulter et modifier les données de la base.
Didacticiel sur MYSQL
Dans la suite de ce chapitre je vais vous montrer comment manipuler une base de données MYSQL avec Node.js. Même si il est vrai que l'on associe souvent Node.js avec le SGBD orienté document : mongoDB.
Il faut éventuellement installer le SGBD MySQL.
Si sur votre PC vous avez déjà installé WAMP (logiciel de serveur web sous Windows), le SGBD MySQL est déjà installé puisqu'il fait partie du pack.
Sinon télécharger SGBD mysql.
Il faut ensuite installer le pilote ("driver") "mysql". Donc il suffit de taper à partir de la console Windows : npm install mysql
Pour le SGBD MySQL installé sur mon PC, le nom utilisateur est "root" et il n'y a pas de mot de passe.
Il existe déjà une base appelée "mabase".
Ce script se connecte à MySQL de mon PC et y crée une nouvelle base nommée "mabase2".
Si cet outil est installé, démarrez WAMP, lancez l'utilitaire phpMyAdmin et vérifiez si la nouvelle base a bien été créée.
La nouvelle base doit comporter au moins une table.
Ce script se connecte à la nouvelle base et y crée un table nommée "adherents2".
La structure de cette table n'est pas un modèle à suivre. Il n'y a pas de clé primaire ... donc
une recherche indexée est impossible.
Basculez sur l'utilaire phpMyAdmin et vérifiez si la table a bien été créée.
La nouvelle table est pour le moment vide de tout enregistrement.
Dans le cadre d'un script il faut une requête SQL de type INSERT pour la remplir.
Ce programma ajoute 5 lignes (enregistrements) à la table "adherents2".
Les champs "email" ne sont pas renseignés mais il n'y aura pas d'erreur d'exécution puisque NULL est autorisé pour toutes les colonnes de
cette table.
Encore une fois utilisez l'utilitaire phpMyAdmin pour vérifier de la bonne exécution du script.
Dans la pratique c'est l'utlisateur qui précise via des saisies le contenu des différents champs pour l'enregistrement ajouté.
Le code :
Il faut importer le module "prompt-sync" pour effectuer des saisies au clavier.
Notez la syntaxe particulière de la requête SQL INSERT et de l'instruction d'exécution de cette requête.
L'idéal pour un utilisateur est de renseigner un formulaire donc avec des contrôles de saisie.
Si vous avez lu mon tutoriel sur PHP vous savez qu'il est relativement simple de créer une page d'extension .php qui
ajoute une ligne après saisies des données via un formulaire HTML.
Code HTML & PHP pour ajouter une ligne à une table MySQL
Malheureusement c'est beaucoup moins simple en Node.js qu'en PHP.
La solution dans l'environnement Node.js fait appel à des notions qui n'ont pas été encore évoquées ...
Le code est relativement simple.
Il faut se connecter à la base "mabase2" puis exécuter une requête de type SELECT.
le résultat de cette requête est dans "retour_sql" : un tableau d'objets.
Il suffit ensuite de parcourir ce tableau avec une boucle de type FOR ... OF ...
L'affichage dans la console Node du contenu de cette table est tristounet.
Rassurez-vous, il s'agit d'un affichage provisoire.
Une requête SQL de type SELECT peut être très puissante mais alors complexe : tri / filtrage / étendue / extraction de données
appartenant à plusieurs tables reliées entre elles par un champ de jointure.
Si vous voulez réviser le langage SQL et plus précisèment les requêtes de sélection :
les requêtes SELECT du langage SQL.
Il est souhaitable que le résultat d'une requête sélection s'affiche dans le navigateur.
Le code HTML est généré dans la variable nommée HTML.
Le contenu de cette variable est adressé au navigateur via le serveur web :
result.writeHead(200, {'Content-Type': 'text/html'}); result.end(HTML);
Le contenu de la table s'affiche désormais non seulement dans la console mais aussi sous forme
d'une jolie page web dans le navigateur.
Reconnnaissez que l'affichage de la requête SELECT dans le navigateur est fort satisfaisant.