Digital-Echo logo

Services

image article

Créer un serveur Node.js avec le module http

Node.js inclut le module http afin d'effectuer des requêtes client/serveur avec le protocole http.

Modifié le 13/12/2023 - Nathan Francois


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

  1. 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 client
        res.statusCode = 200;
        res.end('Hello World');
    });

    server.listen(port, hostname, () => { // Le port d'écoute à utiliser
        console.log(`Server running at http://${hostname}:${port}/`);
    });
     
  2. Ouvrez une interface en ligne de commande à l'emplacement du fichier server.js et exécutez la commande : node server.js
    $ node server.js
    Server running at http://127.0.0.1:3000/
     
  3. 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éponse
        res.setHeader('Content-Type', 'text/html'); // Réponse de type HTML
        res.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éponse
        res.setHeader('Content-Type', 'application/json'); // Réponse de type JSON
        res.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.

const server = http.createServer((req, res) => {
    switch (req.url) { // On analyse l'url contenu dans l'objet request
        case "/":
            res.statusCode = 200;
            res.end("Bienvenue sur la page d'accueil");
            break;
        case "/articles":
            res.statusCode = 200;
            res.end("La liste des articles");
            break;
        default:
            res.writeHead(404);
            res.end("Page not found");
            break;
    }
});

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.

Les plus récents


user logo

Nathan Francois

13/12/2023

Partager :

Les plus populaires

Les articles les plus consultés en ce moment.

image article

Les 12 meilleurs API REST gratuites 2022

Un classement des meilleurs API gratuites pour vos applications web et mobile en 2022.


Digital-Echo logo

© Digital-Echo. 2021

Lorsque vous visitez ou interagissez avec nos sites, services ou outil, nous pouvons stocker vos informations de navigation. Celles-ci ne seront pas partagées et nous permettent d′améliorer l′expérience utilisateur pour vous offrir une navigation plus rapide et plus sûre.

Politique de confidentialité