Express.js est le framework backend le plus populaire pour Node.js, et il fait partie intégrante de l’écosystème JavaScript.

Il est conçu pour construire des applications web monopages, multipages et hybrides, il est également devenu la norme pour le développement d’applications backend avec Node.js, et il constitue la partie backend de ce que l’on appelle la pile MEVN.

La pile MEVN est une pile logicielle JavaScript gratuite et open source pour la construction de sites et d’applications web dynamiques qui comporte les composants suivants :

  1. MongoDB : MongoDB est la base de données NoSQL standard
  2. Express.js : Le framework d’applications web par défaut pour la création d’applications web
  3. Vue.js : Le framework JavaScript progressif utilisé pour créer des applications web frontend
  4. Node.js : Moteur JavaScript utilisé pour les applications évolutives côté serveur et en réseau.

Ce guide explore les principales fonctionnalités du framework Express.js et explique comment créer votre première application.

Qu’est-ce qu’Express.js ?

Express.js, parfois aussi appelé « Express », est un framework backend Node.js minimaliste, rapide et de type Sinatra qui offre des fonctionnalités et des outils robustes pour développer des applications backend évolutives. Il vous offre le système de routage et des fonctionnalités simplifiées pour étendre le framework en développant des composants et des parties plus puissants en fonction des cas d’utilisation de votre application.

Logo officiel Express.js
Logo officiel Express.js

 

Ce framework fournit un ensemble d’outils pour les applications web, les requêtes et les réponses HTTP, le routage et les intergiciels permettant de créer et de déployer des applications à grande échelle, prêtes pour l’entreprise.

Il fournit également un outil d’interface de ligne de commande (CLI) appelé Node Package Manager (NPM), où les développeurs peuvent s’approvisionner en paquets développés. Il oblige également les développeurs à suivre le principe Don’t Repeat Yourself (DRY).

Le principe DRY vise à réduire la répétition des modèles logiciels, en les remplaçant par des abstractions, ou en utilisant des normalisations de données pour éviter la redondance.

À quoi sert Express.js ?

Express.js est utilisé pour un large éventail de choses dans l’écosystème JavaScript/Node.js – vous pouvez développer des applications, des points de terminaison API, des systèmes de routage et des frameworks avec lui.

Vous trouverez ci-dessous une liste de quelques-uns des types d’applications que vous pouvez créer avec Express.js.

Applications à page unique

Les applications à page unique (Single-Page Application ou SPA) sont l’approche moderne du développement d’applications dans laquelle l’ensemble de l’application est acheminé dans une seule page d’index. Express.js est un excellent framework pour construire une API qui connecte ces applications SPA et sert les données de manière cohérente. Quelques exemples de Single Page Applications sont Gmail, Google Maps, Airbnb, Netflix, Pinterest, Paypal, et bien d’autres. Les entreprises utilisent les SPA pour créer une expérience fluide et évolutive.

Outils de collaboration en temps réel

Les outils de collaboration sont là pour faciliter la façon dont les entreprises travaillent et collaborent au quotidien. Avec Express.js, vous pouvez développer facilement des applications de collaboration et de mise en réseau en temps réel.

Le framework est également utilisé pour développer des applications en temps réel telles que des applications de discussion et de tableau de bord, où il devient simple d’intégrer WebSocket au framework.

Express.js s’occupe de la partie routage et intergiciel du processus, ce qui permet aux développeurs de se concentrer sur la logique commerciale essentielle de ces fonctionnalités en temps réel lors du développement d’outils collaboratifs en direct.

Applications de streaming

Les applications de streaming en temps réel comme Netflix sont complexes et comportent de nombreuses couches de flux de données. Pour développer une telle application, vous avez besoin d’un framework solide pour gérer efficacement les flux de données asynchrones.

C’est un framework idéal pour créer et déployer des applications de streaming évolutives et prêtes pour l’entreprise.

Applications Fintech

Fintech est un programme informatique et une autre technologie utilisés pour soutenir ou permettre les services bancaires et financiers. La création d’une application fintech est actuellement la tendance du secteur, et Express.js est le framework de choix pour créer des applications fintech hautement évolutives.

Si vous envisagez de créer une application fintech avec un nombre élevé d’utilisateurs et de transactions, vous rejoindrez des entreprises telles que Paypal et Capital One en développant et en déployant votre application à l’aide d’Express.js.

Pourquoi vous devriez utiliser Express.js

Il y a plusieurs raisons pour lesquelles vous devriez envisager d’utiliser Express.js pour votre prochain projet, de la rapidité des E/S pour des requêtes et des réponses plus rapides à son système à fil unique et ses processus asynchrones. Il utilise également la structure MVC pour simplifier les manipulations de données et les systèmes de routage.

Examinons de plus près certaines des principales raisons pour lesquelles vous devriez envisager d’utiliser Express.js.

Flexible et rapide

Express.js est très facile à utiliser et flexible, et il est plus rapide que tout autre framework Node.js. Il s’agit d’un framework minimaliste qui permet de développer rapidement des applications et de réduire le stress lié à la maîtrise des nombreuses parties d’un framework plus important. Il offre également des fonctionnalités riches telles qu’un excellent système de routage, des intergiciels et la négociation de contenu dès l’installation.

Une partie de la pile MEAN

Express.js est le framework de choix dans chaque pile représentée par le E dans n’importe quelle pile, comme MERN, MEAN, etc. Il peut également être facilement intégré à n’importe quelle pile ou technologie pour montrer à quel point le framework est vital dans le processus de développement de la pile MEAN.

De plus, il peut se connecter efficacement à un système de gestion de base de données plus robuste que le traditionnel MySQL et fournit un processus de développement transparent à travers chaque pile. Cette combinaison de caractéristiques rend Express.js très populaire parmi les développeurs MEAN.

Évolutivité

Express.js s’est avéré très évolutif au fil des ans en raison du nombre de grandes entreprises qui utilisent quotidiennement le framework sur leur serveur.

Il traite efficacement les requêtes et les réponses des utilisateurs et ne nécessite que peu ou pas de configuration supplémentaire lors du développement d’une application web à grande échelle.

Il dispose d’excellents modules, paquets et ressources supplémentaires, ce qui aide les développeurs à créer des applications web fiables et évolutives.

Pris en charge par le moteur Google V8

Express.js prend en charge de nombreux packages du moteur Google V8, ce qui rend le framework très puissant pour la création et le déploiement d’applications en temps réel, collaboratives et basées sur le réseau au niveau de l’entreprise.

Le moteur Google V8 est un moteur open source haute performance JavaScript et WebAssembly qui prend en charge une vitesse et une évolutivité élevées pour les applications complexes et intenses. Lorsque vous utilisez des paquets qui font appel au moteur Google V8, votre application backend bénéficie d’une augmentation massive des performances et de l’évolutivité.

Support communautaire

Puisque ce framework est le plus populaire des frameworks backend Node.js, il dispose du plus grand nombre de support communautaire, de ressources et de packages pour tous les défis de développement. Le support de Google est également étendu, ce qui fait de ce framework un choix populaire parmi les développeurs Node.js. Sa nature open source donne aux développeurs la possibilité de créer des paquets et des ressources extensibles pour faciliter le développement, non seulement pour eux-mêmes, mais aussi pour tous ceux qui codent avec Express.js.

Puissant système de routage

Le framework dispose du système de routage le plus puissant et le plus robuste intégré dès le départ, qui assiste votre application en réponse à une demande du client via un point de terminaison particulier.

Grâce au système de routage d’Express.js, vous pouvez diviser votre système de routage gonflé en fichiers faciles à gérer en utilisant l’instance de routeur du framework.

Le système de routage express est utile pour gérer la structure de votre application, en regroupant différentes routes dans un seul dossier/répertoire.

Les développeurs créent des codes plus faciles à maintenir en regroupant les fonctionnalités avec le routeur express et en évitant les répétitions.

Middleware

Express.js est un framework comprenant une série d’intergiciels pour créer un processus de développement transparent.

Les intergiciels sont des codes qui s’exécutent avant qu’une requête HTTP n’atteigne le gestionnaire de route ou avant qu’un client ne reçoive une réponse, donnant au framework la possibilité d’exécuter un script typique avant ou après la requête d’un client.

Grâce aux intergiciels, les développeurs peuvent insérer des scripts pour intercepter le flux de l’application. Par exemple, les développeurs peuvent utiliser des intergiciels pour vérifier si un utilisateur s’est bien connecté ou déconnecté.

Comment fonctionne Express.js

Étant donné qu’Express.js utilise le modèle client-serveur pour accepter les requêtes des utilisateurs et renvoyer les réponses au client, son fonctionnement n’est pas si différent de celui d’autres frameworks populaires, tels que Laravel.

Lorsqu’un utilisateur envoie une requête depuis son navigateur web en tapant l’adresse d’un site web, le navigateur envoie une requête HTTP à l’application/serveur (de nombreuses applications créées à l’aide d’Express.js sont hébergées quelque part dans le cloud).

Le serveur reçoit la requête par l’intermédiaire de l’une de ses routes et la traite à l’aide du contrôleur qui correspond à la route demandée.

Après le traitement, le serveur renvoie une réponse au client en utilisant HTTP puisqu’il s’agit d’un protocole de communication aller-retour.

La réponse renvoyée au client peut être du texte standard, une page HTML dynamique que le navigateur traitera et affichera une belle page web, ou des données JSON que les développeurs frontend manipuleront pour afficher des informations sur la page web.

Créons un serveur simple pour écouter les requêtes entrantes provenant d’une URL et d’un numéro de port spécifiques avec Express.js :

const express = require('express')
const app = express()
const port = 4000

app.get('/', (request, response) => {
  response.send('Testing Hello World!')
})

app.listen(port, () => {
  console.log(`Test app listening at http://localhost:${port}`)
})

Voici un serveur Express.js simple qui écoutera les requêtes entrantes sur http://localhost:4000/ et renverra une réponse textuelle de « Testing Hello World ! ».

Comment créer une application Express.js

Maintenant, créons une application de démonstration du monde réel en utilisant le nouveau Express.js 5.0. Pour commencer, créez un répertoire pour votre nouvelle application et installez les paquets suivants :

mkdir first-express-app
cd first-express-app

npm install [email protected] --save

Ensuite, créez un fichier index.js dans le répertoire racine et collez-y ce qui suit :

touch index.js

Après avoir configuré le serveur comme démontré ci-dessus, nous allons créer un tableau Todos qui contient tous nos todos à retourner à l’utilisateur en fonction du point de terminaison appelé. Ajoutez le code suivant au fichier index.js:

const express = require("express");
const app = express();
const port = 3000;
app.listen(port, () => {
  console.log(`Test app listening at http://localhost:${port}`)
})
const todos = [
  {
    title: "Todo 1",
    desc: "This is my first Todo",
    completed: true,
  },
  {
    title: "Todo 2",
    desc: "This is my second Todo",
    completed: true,
  },

  {
    title: "Todo 3",
    desc: "This is my third Todo",
    completed: true,
  },

  {
    title: "Todo 4",
    desc: "This is my fourth Todo",
    completed: true,
  },

  {
    title: "Todo 5",
    desc: "This is my fifth Todo",
    completed: true,
  },
];
// Data source ends here

Ensuite, nous allons créer un point de terminaison pour récupérer tous les Todos stockés dans notre serveur :

app.get("/todos", (request, response) => {
  response.status(200).json(todos);
});

Ensuite, un point de terminaison pour récupérer un seul Todo basé sur l’ID du todo :

app.get("/todos/:id", (request, response) => {
  response
    .status(200)
    .json({ data: todos.find((todo) => todo.id === request.params.id) });
});

Maintenant, un point de terminaison pour stocker un nouveau todo:

app.post("/todos", (request, response) => {
  todos.push(request.body);
  response.status(201).json({ msg: "Todo created successfully" });
});

Ensuite, un point de terminaison pour mettre à jour un todo existant avec le ID:

app.put("/todos/:id", (request, response) => {
  const todo = todos.find((todo) => todo.id === request.params.id);
  if (todo) {
    const { title, desc, completed } = request.body;
    todo.title = title;
    todo.desc = desc;
    todo.completed = completed;
    response.status(200).json({ msg: "Todo updated successfully" });
    return;
  }
  response.status(404).json({ msg: "Todo not found" });
});

Enfin, nous créerons un point de terminaison pour supprimer un seul todo sur la base du ID:

app.delete("/todos/:id", (request, response) => {
  const todoIndex = todos.findIndex((todo) => (todo.id = request.params.id));
  if (todoIndex) {
    todos.splice(todoIndex, 1);
    response.status(200).json({ msg: "Todo deleted successfully" });
  }
  response.status(404).json({ msg: "Todo not found" });
});

Cet extrait de code montre comment implémenter une fonctionnalité DELETE dans Express.js. Il recueille l’ID du Todo par le biais de paramètres et recherche dans le tableau l’ID correspondant et le supprime.

Test de l’application Express.js

Il est maintenant temps de tester notre nouvelle application Express.js !

Exécutez la commande suivante pour tester notre API REST nouvellement développée avec Postman et vous assurer que nous avons les bonnes données :

node index.js

Vous pouvez télécharger Postman depuis le site officiel et exécuter le test ci-dessous. Voilà, pour en savoir plus, nous vous suggérons de créer plus de fonctionnalités en utilisant l’approche dont nous avons parlé dans l’article et d’étendre vos connaissances d’Express.js.

Résultat de l'API Express.js
Résultat de l’API Express.js

Résumé

Express.js est le framework le plus populaire de l’écosystème Node.js, et il n’est pas difficile de comprendre pourquoi. Il offre un large éventail d’avantages et de fonctionnalités dont vous pouvez bénéficier.

La faible courbe d’apprentissage d’Express.js le rend très simple et facile à prendre en main. Il fait abstraction des fonctions inutiles ou indésirables des applications web et vous fournit une fine couche de fonctions de base qui permettent une grande flexibilité.

De plus, comme le framework Express.js est la base de Node.js, la connaissance d’Express.js vous donne automatiquement une bonne maîtrise des autres frameworks populaires. Ces connaissances peuvent vous aider à prendre des décisions vitales sur la construction de la logique d’entreprise, sur le cadre à utiliser en dehors d’Express.js, et sur le moment où il faut utiliser les paquets par défaut ou ceux de l’utilisateur.

Que prévoyez-vous de construire ensuite avec Express.js ? Faites-le nous savoir dans la section des commentaires.