Nodejs: routes et ,Endpoints
Afin de créer une application de gestion des ventes contenant un ensemble de routes:
- 1GET http://localhost:8081/tests :Afficher la liste des tests
- 2POST:http://localhost:8081/tests/add Ajouter un test
- 3Delete:http://localhost:8081/tests/:id :Supprimer un test passé en paramètre
- 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 Expressjsroutage
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');
});