Etape 1 :Installation et démarrage
- Installer NodeJS https://nodejs.org/en/download/
- Réaliser un fichier bonjour.js
console.log("Bonjour");
- Tester le fichier.
node "dossier"/bonjour.js
- Installer le module express grâce à npm.
npm install express --save
Création du serveur
- Dans un fichier index.js
//L'application requiert l'utilisation du module Express. var express = require('express'); var hostname = 'localhost'; var port = 8080; // Nous créons un objet de type Express. var app = express(); // Démarrer le serveur app.listen(port, hostname, function(){ console.log("Mon serveur fonctionne sur http://"+ hostname +":"+port+"\n"); });
- Lancer le serveur, puis le tester, un message “cannot GET /” s’affiche.
Implémentation d’une URI /bonjour en GET
- Le serveur devra renvoyer bonjour
Exemple de code serveur
var express = require('express'); var hostname = 'localhost'; var port = 8080; var app = express(); //Afin de faciliter le routage (les URL que nous souhaitons prendre en charge dans notre API), nous créons un objet Router. //C'est à partir de cet objet myRouter, que nous allons implémenter les méthodes. var myRouter = express.Router(); myRouter.route('/waza') // GET .get(function(req,res){ res.json({message : "Youhou", methode : req.method}); }) // Nous demandons à l'application d'utiliser notre routeur app.use(myRouter); app.listen(port, hostname, function(){ console.log("Mon serveur fonctionne sur http://"+ hostname +":"+port); });
Etape 2 : Récupération d’information via l’URL
- Réaliser une page formulaire.html qui permette de saisir un login et un mot de passe.
- Récupérer les informations sur NodeJS grâce à une page index.js et renvoyer les 2 valeurs au navigateur.
Exemple de code client
$( document ).ready(function() { $('#btn-new-liste').click(function(){ var idx=$('#idx').val(); $.ajax({ type: "GET", url: "http://localhost/serveur/gateau/"+idx, success: function(data){ $("#result").html(data); } }); }); });
Exemple de code serveur
myRouter.route('/gateau/:id') .get(function(req,res){ res.json({message : "gateau n°" + req.params.id}); })
Etape 3 : Récupération d’information via des paramètres dans l’URL
- Installer le module mysql pour pouvoir accéder à une base de données
- Réaliser un formulaire de création d’un client.
- Envoyer les informations à NodeJS en JSON avec la méthode POST.
- Récupérer les informations sur le serveur NodeJS
- Réaliser une insertion du client grâce à une requête SQL sur le serveur NodeJS.
Exemple de code client
$('#btn-valide').click(function(){ var id=$('#id').val(); var nom=$('#nom').val(); $.ajax({ type: "POST", contentType: 'application/json; charset=utf-8', url: "http://localhost/serveur/gateau?id="+id+"&nom="+nom, success: function(data){ //gateau modifié alert("gateau enregistré"); } }); });
Exemple de code serveur
myRouter.route('/gateau') .post(function(req,res){ id= req.query.id; nom= req.query.nom; connection.connect(); connection.query('insert into gateau values('+id+',"'+nom+'")', function (error, results, fields) { if (error) throw error; }); connection.end(); res.json({ message : "Gateau ajouté"}); })
Etape 4 : Envoie d’information en JSON depuis le serveur
- Permettre lors de l’appel de l’url clients d’afficher tous les clients. Le serveur NodeJS renverra un tableau en JSON.
Exemple de code client
$('#btn-valide').click(function(){ $.ajax({ type: "GET", contentType: 'application/json; charset=utf-8', url: "http://localhost/serveur/gateaux, success: function(data){ alert(data); } }); });
Exemple de code serveur
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '', database : 'patisserie' }); myRouter.route('/gateaux') .get(function(req,res,next){ connection.connect(); connection.query('SELECT * from gateau', function (error, results, fields) { if (error) throw error; res.json({ message : results}); }); connection.end(); })