Nodejs: routes et ,Endpoints

Afin de créer une application de gestion des ventes contenant un ensemble de routes:

  1. 1GET http://localhost:8081/tests :Afficher la liste des tests
  2. 2POST:http://localhost:8081/tests/add Ajouter un test
  3. 3Delete:http://localhost:8081/tests/:id :Supprimer un test passé en paramètre
  4. 4PUT: http://localhost:8081/tests/id/modifier :Modifier un test passé en paramètres

Pour cela on doit configurer le serveur pour quelle traite ces routes et exécute la fonction convernable

serveur.js

/*le module HTTP permet à nodeJs de répondre à des requête http */
var http = require("http");
http.createServer(function (request, response) {

/*{
url=loclahost:8081/tests
methode:GET
}
OK
*/
if (request.url == '/tests') {
/*le type de la répone un doucumet html*/
response.writeHead(200, { 'Content-Type': 'text/html' });
//le contenu de la réponse
response.write('<html><body><p>ListeTests.</p></body></html>');
//envoyer la reponse
response.end();
}
/*
{
url=loclahost:8081/8/tests
methode:GET
}
PROBELME COMMENT Récupérer le paramètre 8 qui 'id
comment mapper les requêtes http:put ,delete,post,...
*/
else if (request.url == "/tests/{id}/supprimer") {
response.writeHead(200, { 'Content-Type': 'text/html' });
response.write('<html><body><p>Formulaire Ajouter un test</p></body></sshtml>');
response.end();
}
/*La solution est l'utilisation du framework ExpressJS*/
else
response.end('Erreur la route n\'existe pas ');
}).listen(8081);

Framework ExpressJS

Express JS est un framework Web open source NodeJS , Il est conçu pour créer des applications Web et des API

Parmi les fonctionnalité principale de Expressjs

routage

ExpressJS fournit un mécanisme de routage très avancé qui aide à préserver l'état de la page Web à l'aide de leurs URL.

Templating

ExpressJS fournit des moteurs de modèles qui permettent aux développeurs de créer du contenu dynamique sur les pages Web en créant des modèles HTML côté serveur.

Installer ExpressJs

npm install express --save

Créer le fichier de routage routage.js à l'aide de ExpressJs

Dans ce fichier on va ajouter toutes les toutes pour gérer un test /tests /tests/add ...
/*importer la bilbiothèque exprejss*/
const express = require('express')
/*Créer une instance du module Router */
let app = express.Router()

//la méthode http get mappé avec la route /
app.get('/', function (req, res) {
res.send('Afficher la listes des tests');
});

//Get mappé avec /paramter comme /41 ou /hello
app.get('/:id', function (req, res) {
res.send('Détail du test' + req.params.id);
});

//Delete mappé avec /paramter
app.delete('/:id', function (req, res) {
res.send('Supprimer du test' + req.params.id);
});

//Get mappé avec /paramter1/paramter2 comme /14/monNom
app.get('/:id/:nom', function (req, res) {
res.send('id reçu' + req.params.id+" nom reçu "+req.params.nom);
});


//Post mappé avec la route /ajouter
app.post('/ajouter', function (req, res) {
res.send('Ajouter un test');
});

//Put mappé avec /modifier
app.put('/modifier', function (req, res) {
res.send('Modifier un test');
});

//Get Mappé avec un paramètre de taille de 2 à 5
app.get('/infos/recherche/:nom([a-z]{2,8})', function(req, res){
   res.send('rechercher le: ' + req.params.nom);
});

//n'importe quelle autre route
app.get('*', function(req, res){
   res.send('404 route not found');
});

module.exports = app

Créer le fichier index.js et ajouter le fichier de configuration routage.js

//importer expressjs
var express = require('express');
var app = express();
/* importer le fichier de routage pour gérer les tests */
const test = require('./routage')
/*créer les routes tests
tests/
tests/add
tests/id
...
*/
app.use('/tests',test)

//démarer le serveur sur le port 8081
app.listen(8081, function () {
console.log('Écoute du port 8081');
});

Lancer le Serveur

nodemon Serveur.js








Cours et TPs