Présentation de Node.js
Node.js est un environnement d'exécution open-source permettant d'utiliser le language JavaScript côté serveur. Cet environnement permet d'exécuter le code JavaScript en dehors du navigateur internet du client directement sur le système d'exploitation d'un ordinateur ou d'un serveur.
Installer Node.js
Pour commencer à exécuter un projet Node.js il est nécessaire de télécharger le code source de Node directement sur le site officiel et de l'installer sur votre machine : https://nodejs.org/fr/download/.
Une fois Node.js installé sur votre machine il est temps de lancer son premier serveur avec Node.js.
Créer un serveur web avec le module http
- Copiez le code ci-dessous et collez le dans un fichier que vous nommerez "server.js"
const http = require('http');
const hostname = '127.0.0.1';const port = 3000;
const server = http.createServer((req, res) => { // Création du serveur http// Modification de la réponse à retourner au clientres.statusCode = 200;res.end('Hello World');});
server.listen(port, hostname, () => { // Le port d'écoute à utiliserconsole.log(`Server running at http://${hostname}:${port}/`);}); - Ouvrez une interface en ligne de commande à l'emplacement du fichier server.js et exécutez la commande : node server.js
$ node server.jsServer running at http://127.0.0.1:3000/
- Ouvrez votre navigateur et accédez à http://localhost:3000 vous devriez voir le message "Hello World" s'afficher
Félicitation vous avez crée votre premier serveur http avec Node.js mais le serveur actuel ne retourne que des réponses en texte brut, nous allons voir comment renvoyer différents types de réponses avec notre serveur Node.
Modifier le format de la réponse
La plupart des serveurs web retournent du HTML ou du JSON mais nous pouvons également retourner des réponses de type XML ou CSV.
Le réponse retournée par notre serveur web peut être modifiée en utilisant l'objet response du module http.
- Réponse de type HTML
const server = http.createServer((req, res) => {res.statusCode = 200; // Le statut de la réponseres.setHeader('Content-Type', 'text/html'); // Réponse de type HTMLres.end("<html><body><h1>Hello World</h1></body></html>"); // Réponse au format HTML});
- Répondre en JSON
const server = http.createServer((req, res) => {res.statusCode = 200; // Le statut de la réponseres.setHeader('Content-Type', 'application/json'); // Réponse de type JSONres.end(JSON.stringify({ message: "Hello World" })); // Objet JSON converti en string});
Gérer les routes de notre application
L'objet request permet d'analyser les informations de la requête envoyée par le client. Cet objet comporte une multitude d'informations utiles pour votre serveur tel que la méthode utilisée (GET, POST...) ou l'URL de la requête (/articles/1).
Vous pouvez utiliser un switch afin de répondre à différentes URL sur votre serveur.
Nous avons vu dans cet article une utilisation minimaliste du module http de Node.js, il existe de nombreuses façons d'optimiser votre serveur mais le but de cet article est de vous donner les bases pour étendre cette configuration.