• 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 3/13/20

Créez une application Express

Log in or subscribe for free to enjoy all this course has to offer!

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

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

npm install --save 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

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 middleware

Une application Express est fondamentalement une série de fonctions appelées middleware. Chaque élément de middleware reçoit les objets request etresponse , 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.

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.

Example of certificate of achievement
Example of certificate of achievement