Skip to content

Créer un Serveur HTTP Simple avec Node.js

Introduction

Node.js est conçu pour créer facilement des serveurs. Grâce à son module natif http, vous pouvez démarrer un serveur HTTP sans avoir besoin d'une librairie externe.

Concepts clés :

  1. Module : Une bibliothèque ou un ensemble de fonctions que vous pouvez inclure dans votre application. Node.js dispose de plusieurs modules natifs.
  2. Callback : Une fonction qui est appelée après qu'une autre fonction ait terminé son exécution.

Étape par étape :

1. Initialisation du projet :

Si vous n'avez pas encore initialisé un projet Node.js :

bash
mkdir mon-serveur-simple
cd mon-serveur-simple
npm init -y
mkdir mon-serveur-simple
cd mon-serveur-simple
npm init -y

Pensez à mettre { "type": "module" } dans votre package.json si vous souhaitez utiliser la syntaxe import/from (voir ici pour plus de détails).

2. Créer un fichier pour votre serveur :

Dans le dossier de votre projet, créez un fichier nommé server.js:

bash
touch server.js
touch server.js

3. Écrire le code du serveur :

Ouvrez server.js dans votre éditeur de texte et ajoutez le code suivant :

javascript
// Étape 1: Importer le module HTTP
import http from 'http';

// Étape 2: Créer le serveur
const server = http.createServer((req, res) => {
    // À chaque requête vers le serveur, ce code sera exécuté

    res.writeHead(200, { 'Content-Type': 'text/plain' }); // On définit le statut HTTP et les en-têtes de la réponse
    res.end('Salut, bienvenue sur mon serveur!'); // On envoie une réponse au client
});

// Étape 3: Démarrer le serveur
server.listen(3000, () => {
    console.log('Serveur démarré sur http://localhost:3000');
});
// Étape 1: Importer le module HTTP
import http from 'http';

// Étape 2: Créer le serveur
const server = http.createServer((req, res) => {
    // À chaque requête vers le serveur, ce code sera exécuté

    res.writeHead(200, { 'Content-Type': 'text/plain' }); // On définit le statut HTTP et les en-têtes de la réponse
    res.end('Salut, bienvenue sur mon serveur!'); // On envoie une réponse au client
});

// Étape 3: Démarrer le serveur
server.listen(3000, () => {
    console.log('Serveur démarré sur http://localhost:3000');
});

4. Exécuter le serveur :

Retournez à votre terminal et exécutez la commande suivante :

bash
node server.js
node server.js

Vous devriez voir le message "Serveur démarré sur http://localhost:3000". Ouvrez votre navigateur et allez à cette URL. Vous devriez voir le message "Salut, bienvenue sur mon serveur!".

Explication :

  • http : Il s'agit d'un module natif de Node.js qui fournit des fonctionnalités liées au protocole HTTP.

  • http.createServer() : Une méthode qui crée un nouvel objet serveur HTTP.

  • Callback (req, res) : La fonction callback est appelée à chaque fois qu'une requête est faite vers le serveur. req est un objet contenant des informations sur la requête entrante, comme les en-têtes ou l'URL. res est un objet utilisé pour renvoyer des données au client.

  • res.writeHead() : C'est une méthode qui permet de définir le statut HTTP et les en-têtes de la réponse.

  • res.end() : C'est la méthode qui termine la réponse et, dans ce cas, envoie un simple message texte.