• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 2/17/23

Créez une application Express

Coder des serveurs web en Node pur est possible, mais long et laborieux. En effet, cela exige d'analyser manuellement chaque demande entrante. L'utilisation du framework Express simplifie ces tâches, en nous permettant de déployer nos API beaucoup plus rapidement. Installons-le maintenant.

Installez Express

Regardons ensemble comment installer Express :

Pour ajouter Express à votre projet, exécutez la commande suivante à partir de votre dossier backend :

npm install express

Créez un fichier app.js , où vous placerez votre application Express :

const express = require('express');

const app = express();



module.exports = app;

Exécutez l'application Express sur le serveur Node

Découvrons ensemble comment exécuter l'application sur le serveur Node ! Vous trouverez en-dessous de la vidéo les étapes détaillées.

Revenez à votre fichier server.js et modifiez-le comme suit :

const http = require('http');
const app = require('./app');

app.set('port', process.env.PORT || 3000);
const server = http.createServer(app);

server.listen(process.env.PORT || 3000);

Effectuer une demande vers ce serveur générera une erreur 404, car notre application n'a encore aucun moyen de répondre. Configurons une réponse simple pour nous assurer que tout fonctionne correctement, en effectuant un ajout à notre fichier app.js :

const express = require('express');

const app = express();

app.use((req, res) => {
   res.json({ message: 'Votre requête a bien été reçue !' }); 
});

module.exports = app;

Si vous essayez d'effectuer une requête à votre serveur, vous devez récupérer un objet JSON contenant le message que nous avons spécifié.

Maintenant que notre serveur Node gère correctement notre application Express, voyons comment nous pouvons ajouter des fonctionnalités à l'application.

Ajoutez des middlewares

Une application Express est fondamentalement une série de fonctions appelées middleware. Chaque élément de middleware reçoit les objets request et response , peut les lire, les analyser et les manipuler, le cas échéant. Le middleware Express reçoit également la méthode next , qui permet à chaque middleware de passer l'exécution au middleware suivant. Voyons comment tout cela fonctionne.

Vous retrouvez ci-desous l'intégralité du code :

const express = require('express');

const app = express();

app.use((req, res, next) => {
  console.log('Requête reçue !');
  next();
});

app.use((req, res, next) => {
  res.status(201);
  next();
});

app.use((req, res, next) => {
  res.json({ message: 'Votre requête a bien été reçue !' });
  next();
});

app.use((req, res, next) => {
  console.log('Réponse envoyée avec succès !');
});

module.exports = app;

Cette application Express contient quatre éléments de middleware :

  • le premier enregistre « Requête reçue ! » dans la console et passe l'exécution ;

  • le deuxième ajoute un code d'état 201 à la réponse et passe l'exécution ;

  • le troisième envoie la réponse JSON et passe l'exécution ;

  • le dernier élément de middleware enregistre « Réponse envoyée avec succès ! » dans la console.

Il s'agit d'un serveur très simple et qui ne fait pas grand-chose pour l'instant, mais il illustre comment le middleware fonctionne dans une application Express.

Améliorez server.js

Avant d'aller plus loin dans le cours, apportons quelques améliorations à notre fichier server.js, pour le rendre plus stable et approprié pour le déploiement :

const http = require('http');
const app = require('./app');

const normalizePort = val => {
  const port = parseInt(val, 10);

  if (isNaN(port)) {
    return val;
  }
  if (port >= 0) {
    return port;
  }
  return false;
};
const port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

const errorHandler = error => {
  if (error.syscall !== 'listen') {
    throw error;
  }
  const address = server.address();
  const bind = typeof address === 'string' ? 'pipe ' + address : 'port: ' + port;
  switch (error.code) {
    case 'EACCES':
      console.error(bind + ' requires elevated privileges.');
      process.exit(1);
      break;
    case 'EADDRINUSE':
      console.error(bind + ' is already in use.');
      process.exit(1);
      break;
    default:
      throw error;
  }
};

const server = http.createServer(app);

server.on('error', errorHandler);
server.on('listening', () => {
  const address = server.address();
  const bind = typeof address === 'string' ? 'pipe ' + address : 'port ' + port;
  console.log('Listening on ' + bind);
});

server.listen(port);

Aperçu rapide de ce qui se passe ici :

  • la fonction normalizePort renvoie un port valide, qu'il soit fourni sous la forme d'un numéro ou d'une chaîne ;

  • la fonction errorHandler  recherche les différentes erreurs et les gère de manière appropriée. Elle est ensuite enregistrée dans le serveur ;

  • un écouteur d'évènements est également enregistré, consignant le port ou le canal nommé sur lequel le serveur s'exécute dans la console.

Notre serveur de développement Node est à présent opérationnel. Vous pouvez ainsi ajouter les fonctionnalités appropriées à l'application Express.

En résumé

  • Le framework Express est installé et enregistré dans le  package.json  avec   npm install express  .

  • Pour créer une application Express, appelez simplement la méthode  express()  .

  • Un middleware est un bloc de code qui traite les requêtes et réponses de votre application.

  • Ajouter la normalisation de port, la gestion d'erreur et du logging basique à votre serveur Node le rend plus constant et plus facile à déboguer.

Maintenant que vous savez utiliser le framework Express, nous allons pouvoir pour de bon commencer à créer notre API. Rendez-vous dans le chapitre suivant ! 

Example of certificate of achievement
Example of certificate of achievement