Tutoriel sur les frameworks Node.js et Express.js

โšก Rรฉsumรฉ intelligent

Express.js est un framework minimal pour applications web Node.js qui ajoute le routage, les intergiciels et le rendu de modรจles au module HTTP principal, permettant ainsi aux applications monopages, multipages et hybrides d'atteindre un serveur fonctionnel en trรจs peu de lignes.

  • (I.e. Rรดle de la pile MEAN : Express.js fournit la couche backend en plus MongoDB, AngularJS et Node.js.
  • โ˜‘๏ธ Installation: La commande `npm install express` rรฉcupรจre le framework depuis le gestionnaire de paquets Node.
  • โœ… Routage: app.METHOD(PATH, HANDLER) mappe chaque URL et le verbe HTTP ร  un gestionnaire.
  • ๐Ÿงช Modรจles: app.set('view engine') plus res.render alimente un fichier de vue avec des donnรฉes.
  • ๏ธ Forme moderne : Express 5 accepte les gestionnaires renvoyant des promesses et regroupe express.json().
  • (I.e. Note de version : Jade a รฉtรฉ renommรฉ Pug, et Node.js 24 est la version LTS active.

Tutoriel sur le framework Node.js Express.js

Dans ce tutoriel, nous รฉtudierons le framework Express. Ce framework est conรงu pour รชtre un framework d'application web Node.js minimaliste et flexible, offrant un ensemble de fonctionnalitรฉs robustes pour la crรฉation d'applications web monopages, multipages et hybrides.

Quโ€™est-ce quโ€™Express.js ?

Express.js est un framework serveur d'applications web Node.js, spรฉcialement conรงu pour la crรฉation d'applications web monopages, multipages et hybrides.

Il est devenu le framework serveur standard pour Node.js. Express constitue la partie backend de ce que l'on appelle la pile MEAN.

Express superpose le routage et les intergiciels au protocole HTTP Node.js principal. flux et les API d'รฉvรฉnements.

Le MEAN est un logiciel gratuit et open source Javascรฉnario pile logicielle pour la crรฉation de sites Web dynamiques et d'applications Web comprenant les composants suivants ;

1) MongoDB โ€” La base de donnรฉes NoSQL standard

2) Express.js โ€” Le framework par dรฉfaut des applications Web

3) AngularJS - Le JavaScript MVC framework utilisรฉ pour les applications Web

4) Node.js โ€” Cadre utilisรฉ pour les applications serveur et rรฉseau รฉvolutives.

Le framework Express.js facilite le dรฉveloppement d'une application qui peut รชtre utilisรฉe pour gรฉrer plusieurs types de requรชtes telles que les requรชtes GET, PUT, POST et DELETE.

Installation et utilisation d'Express

Express est installรฉ via Node Package Manager. Cela peut รชtre fait en exรฉcutant la ligne suivante dans la ligne de commande

npm installer express

La commande ci-dessus demande au gestionnaire de paquets Node de tรฉlรฉcharger l'express requis modules et installez-les en consรฉquence.

Note de version : npm installe dรฉsormais Express 5.2 ; de nombreux projets utilisent encore Express 4. Les deux exรฉcutent les exemples ci-dessous sur un version Node.js prise en charge.

Utilisons notre framework Express nouvellement installรฉ et crรฉons une simple application ยซ Hello World ยป.

Notre application va crรฉer un simple module serveur qui รฉcoutera sur le port numรฉro 3000. Dans notre exemple, si une requรชte est effectuรฉe via le navigateur sur ce numรฉro de port, l'application serveur enverra une rรฉponse ยซ Hello World ยป au client.

Code serveur Express annotรฉ ยซ Hello World ยป รฉcoutant sur le port 3000

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

Code Explication:

  1. Dans notre premiรจre ligne de code, nous utilisons la fonction require pour inclure le ยซ module express ยป.
  2. Avant de pouvoir commencer ร  utiliser le module express, nous devons en faire un objet.
  3. Nous crรฉons ici une fonction de rappel. Cette fonction sera appelรฉe chaque fois qu'un utilisateur accรฉdera ร  la racine de notre application web, ร  savoir http://localhost:3000. Elle servira ร  afficher la chaรฎne de caractรจres ยซ Hello World ยป sur la page web.
  4. Dans la fonction de rappel, nous renvoyons la chaรฎne ยซ Hello World ยป au client. Le paramรจtre 'res' est utilisรฉ pour renvoyer le contenu ร  la page Web. Ce paramรจtre 'res' est fourni par le module 'request' pour permettre de renvoyer du contenu ร  la page Web.
  5. Nous utilisons ensuite la fonction listen pour que notre application serveur รฉcoute les requรชtes client sur le port 3000. Vous pouvez spรฉcifier ici n'importe quel port disponible.

Si la commande est exรฉcutรฉe avec succรจs, la sortie suivante s'affichera lorsque vous exรฉcutez votre code dans le navigateur.

Sortie :

Navigateur affichant ยซ Hello World ยป renvoyรฉ par le serveur Express sur le port 3000

De la sortie,

  • Vous pouvez clairement le constater si vous consultez le URL Si vous accรฉdez ร  localhost sur le port 3000, vous verrez la chaรฎne ยซ Hello World ยป affichรฉe sur la page.
  • Comme nous avons spรฉcifiquement indiquรฉ dans notre code que le serveur รฉcoute sur le port 3000, nous pouvons visualiser le rรฉsultat en accรฉdant ร  cette adresse. URL.

Que sont les itinรฉraires ?

Une seule route racine n'est que le point de dรฉpart.

Le routage dรฉtermine la maniรจre dont une application rรฉpond ร  une requรชte client adressรฉe ร  un point de terminaison particulier.

Par exemple, un client peut effectuer une requรชte HTTP GET, POST, PUT ou DELETE pour diverses opรฉrations. URL comme celles illustrรฉes ci-dessous ;

http://localhost:3000/Books
http://localhost:3000/Students

Dans l'exemple ci-dessus,

  • Si une requรชte GET est effectuรฉe pour la premiรจre URL, alors la rรฉponse devrait idรฉalement รชtre une liste de livres.
  • Si la requรชte GET est effectuรฉe pour la seconde URL, la rรฉponse devrait idรฉalement รชtre une liste d'รฉtudiants.
  • Donc, d'aprรจs le URL Lorsqu'une ressource est consultรฉe, une fonctionnalitรฉ diffรฉrente du serveur web est appelรฉe, et la rรฉponse correspondante est envoyรฉe au client. C'est le principe du routage.

Chaque route peut avoir une ou plusieurs fonctions de gestionnaire, qui sont exรฉcutรฉes lorsque la route correspond.

La syntaxe gรฉnรฉrale d'un itinรฉraire est indiquรฉe ci-dessous

app.METHOD(PATH, HANDLER)

Oรน,

1) l'application est une instance du module express

2) METHOD est une mรฉthode de requรชte HTTP (GET, POST, PUT ou DELETE)

3) PATH est un chemin sur le serveur.

4) HANDLER est la fonction exรฉcutรฉe lorsque l'itinรฉraire correspond.

Appeler Demander Interet
app.get(PATH, HANDLER) ร‰CONOMISEZ Lire
app.post(CHEMIN, GESTIONNAIRE) POSTEZ Crรฉer
app.put(CHEMIN, GESTIONNAIRE) PUT remplacer
app.delete(PATH, HANDLER) EFFACER Supprimer
app.route(PATH) Enchaรฎnรฉ Gestionnaires de groupe
app.use(GESTIONNAIRE) Toutes Middleware de montage

โš ๏ธ express 5 Notes: Ces signatures restent inchangรฉes, mais app.del() est devenu app.delete(), res.sendfile() est devenu res.sendFile(), et les caractรจres gรฉnรฉriques doivent dรฉsormais avoir des noms tels que /*splat.

Prenons l'exemple de la mise en ล“uvre de routes dans Express. Notre exemple crรฉera trois routes :

  1. Une route /Node qui affichera la chaรฎne ยซ Tutoriel sur Node ยป si cette route est accรฉdรฉe
  2. Une route /Angular qui affichera la chaรฎne ยซ Tutoriel sur Angular ยป si cette route est accรฉdรฉe
  3. Une route par dรฉfaut / qui affichera la chaรฎne ยซ Bienvenue ร  Guru99 tutoriels.

Notre code de base restera le mรชme que les exemples prรฉcรฉdents. L'extrait ci-dessous est un module complรฉmentaire permettant de montrer comment le routage est implรฉmentรฉ.

Code de routage Express annotรฉ dรฉfinissant les routes Node, Angular et par dรฉfaut

var express = require('express');
var app = express();
app.route('/Node').get(function(req,res)
{
    res.send("Tutorial on Node");
});
app.route('/Angular').get(function(req,res)
{
    res.send("Tutorial on Angular");
});
app.get('/',function(req,res){
    res.send('Welcome to Guru99 Tutorials');
});

Code Explication:

  1. Ici, nous dรฉfinissons un itinรฉraire si le URL http://localhost:3000/Node is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Node URLCette fonction possรจde 2 paramรจtres.
    • Le paramรจtre principal que nous utiliserons est le paramรจtre 'res', qui peut รชtre utilisรฉ pour renvoyer des informations au client.
    • Le paramรจtre 'req' contient des informations sur la requรชte en cours. Parfois, des paramรจtres supplรฉmentaires peuvent รชtre envoyรฉs dans le cadre de la demande effectuรฉe, et le paramรจtre ยซ req ยป peut donc รชtre utilisรฉ pour trouver les paramรจtres supplรฉmentaires envoyรฉs.
  2. Nous utilisons la fonction d'envoi pour renvoyer la chaรฎne ยซ Tutoriel sur Node ยป au client si la route Node est choisie.
  3. Ici, nous dรฉfinissons un itinรฉraire si le URL http://localhost:3000/Angular is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Angular URL.
  4. Nous utilisons la fonction d'envoi pour renvoyer la chaรฎne ยซ Tutoriel sur Angular ยป au client si la route Angular est choisie.
  5. Il s'agit de la route par dรฉfaut empruntรฉe lorsqu'on accรจde ร  la racine de l'application : http://localhost:3000. Lorsque la route par dรฉfaut est choisie, le message ยซ Bienvenue sur Guru99 tutoriels seront envoyรฉs au client.

Si la commande est exรฉcutรฉe avec succรจs, la sortie suivante s'affichera lorsque vous exรฉcutez votre code dans le navigateur.

Sortie :

Navigateur affichant Bienvenue sur Guru99 tutoriels sur l'itinรฉraire Express par dรฉfaut

De la sortie,

  • Vous pouvez clairement le constater si vous consultez le URL Si vous accรฉdez ร  localhost sur le port 3000, vous verrez la chaรฎne ยซ Bienvenue sur Guru99 tutoriels sont affichรฉs sur la page.
  • Parce que dans notre code, nous avons mentionnรฉ que notre valeur par dรฉfaut URL afficherait ce message.

Ensuite, accรฉdez ร  /Node.

Navigateur affichant le tutoriel sur Node renvoyรฉ par la route Node

De la sortie,

  • Vous pouvez constater que si le URL L'URL ayant รฉtรฉ modifiรฉe en /Node, la route Node correspondante sera sรฉlectionnรฉe et la chaรฎne ยซ Tutoriel sur Node ยป s'affichera.

Ensuite, accรฉdez ร  /Angular.

Navigateur affichant le tutoriel sur Angular renvoyรฉ par la route Angular

De la sortie,

  • Vous pouvez constater que si le URL L'URL ayant รฉtรฉ modifiรฉe en /Angular, la route Node correspondante sera sรฉlectionnรฉe et la chaรฎne ยซ Tutoriel sur Angular ยป s'affichera.

Exemple de serveur Web utilisant express.js

L'exemple prรฉcรฉdent nous a montrรฉ comment dรฉterminer le contenu ร  afficher en fonction du routage. Ce type de routage est utilisรฉ dans la plupart des applications web modernes. L'autre aspect d'un serveur web concerne l'utilisation de modรจles (templates) avec Node.js.

Pour crรฉer rapidement des applications Node.js ร  la volรฉe, une mรฉthode simple et efficace consiste ร  utiliser des modรจles. De nombreux frameworks permettent de crรฉer des modรจles. Nous prendrons ici l'exemple du framework Jade.

Jade s'installe via le gestionnaire de paquets Node.js. Pour ce faire, exรฉcutez la ligne de commande suivante :

npm installer jade

La commande ci-dessus demande au gestionnaire de paquets Node de tรฉlรฉcharger les modules Jade requis et de les installer en consรฉquence.

NOTE: Dans la derniรจre version de Node, Jade est obsolรจte. Utilisez plutรดt le carlin.

โš ๏ธ ร‰quivalent moderne : installer Carlin Renommez index.jade en index.pug et dรฉfinissez app.set('view engine','pug'). Le package jade ne reรงoit aucune mise ร  jour ; les รฉtapes ci-dessous restent valides.

Utilisons notre framework Jade nouvellement installรฉ et crรฉons quelques modรจles de base.

ร‰tape 1) La premiรจre รฉtape consiste ร  crรฉer un modรจle Jade. Crรฉez un fichier nommรฉ index.jade et insรฉrez le code ci-dessous. Assurez-vous de crรฉer le fichier dans le dossier ยซ views ยป.

Modรจle index.jade avec espaces rรฉservรฉs pour le titre et l'en-tรชte

  1. Nous spรฉcifions ici que le titre de la page sera remplacรฉ par la valeur transmise lorsque ce modรจle sera invoquรฉ.
  2. Nous prรฉcisons รฉgalement que le texte de la balise d'en-tรชte sera remplacรฉ par ce qui sera transmis dans le modรจle Jade.

Voici le code de l'application qui le gรฉnรจre.

Code Express annotรฉ dรฉfinissant le moteur de rendu Jade et l'index de rendu

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Guru99',message:'Welcome'})
});
var server=app.listen(3000,function() {});

Code Explication:

  1. La premiรจre chose ร  spรฉcifier dans l'application est le ยซ moteur de rendu ยป qui sera utilisรฉ pour afficher les modรจles. Puisque nous allons utiliser Jade pour le rendu de nos modรจles, nous le spรฉcifions en consรฉquence.
  2. La fonction de rendu est utilisรฉe pour afficher une page Web. Dans notre exemple, nous rendons le modรจle (index.jade) qui a รฉtรฉ crรฉรฉ prรฉcรฉdemment.
  3. Nous transmettons les valeurs de ยซGuruLes valeurs ยซ 99 ยป et ยซ Bienvenue ยป seront respectivement attribuรฉes aux paramรจtres ยซ title ยป et ยซ message ยป. Ces valeurs seront remplacรฉes par les paramรจtres ยซ title ยป et ยซ message ยป dรฉclarรฉs dans le modรจle index.jade.

Si la commande est exรฉcutรฉe avec succรจs, la sortie suivante s'affichera lorsque vous exรฉcutez votre code dans le navigateur.

Sortie :

Affichage du modรจle Jade par le navigateur avec le titre Guru99 et en-tรชte Bienvenue

De la sortie,

  • Nous pouvons constater que le titre de la page est dรฉfini sur ยซGuru99โ€ et lโ€™en-tรชte de la page devient ยซ Bienvenue ยป.
  • Cela est dรป au modรจle Jade qui est invoquรฉ dans notre application Node.js.

FAQ

Middleware Les fonctions reรงoivent les instructions `req`, `res` et `next`, puis s'exรฉcutent dans l'ordre d'enregistrement. Elles gรจrent la journalisation, l'analyse du corps de la rรฉponse, l'authentification et les erreurs, et chacune doit terminer la rรฉponse ou appeler `next()`.

Non. Express intรจgre les analyseurs syntaxiques, donc `express.json()` et `express.urlencoded()` remplacent les fonctions sรฉparรฉes. analyseur de corps Dรฉpendance. La fonction d'assistance bodyParser() combinรฉe a รฉtรฉ supprimรฉe, et req.body reste indรฉfini jusqu'ร  ce qu'un analyseur syntaxique soit exรฉcutรฉ.

express 5 Les gestionnaires sont dรฉsormais compatibles avec les promesses, les mรฉthodes app.del() et res.sendfile() ont รฉtรฉ supprimรฉes, la correspondance des chemins a รฉtรฉ amรฉliorรฉe afin que les caractรจres gรฉnรฉriques nรฉcessitent des noms tels que /*splat, et l'extension urlencoded a รฉtรฉ dรฉfinie sur false par dรฉfaut.

Avec Express 5, une promesse rejetรฉe est automatiquement transmise au middleware de gestion des erreurs, ce qui รฉlimine les appels manuels ร  `next(err)`. Express 4 exige un bloc `try/catch` explicite dans chaque instruction `async`. rappeler.

Carlin Le nom Jade a รฉtรฉ modifiรฉ pour des raisons de marque dรฉposรฉe et le package Jade est obsolรจte. Les modรจles existants restent fonctionnels aprรจs avoir รฉtรฉ renommรฉs en .pug et aprรจs avoir changรฉ le moteur d'affichage.

Node.js 24 est la version LTS active jusqu'en 2026, tandis que Node.js 22 reste en maintenance. installer L'un d'eux. Express 5 requiert Node.js 18 ou une version plus rรฉcente.

Les scanners d'apprentissage automatique lisent les dรฉfinitions de routage et l'ordre des intergiciels, puis signalent les authentifications manquantes et non validรฉes. Javascรฉnario Rรจgles CORS permissives et d'entrรฉe. Chaque rรฉsultat est systรฉmatiquement validรฉ par un examinateur humain.

Copilote GitHub et d'autres assistants similaires gรฉnรจrent des fichiers de routage, des intergiciels de validation et des stubs de contrรดleur ร  partir d'une simple invite. Chaque route gรฉnรฉrรฉe nรฉcessite nรฉanmoins vers les tests avant la libรฉration.

Rรฉsumez cet article avec :