La création d'un serveur HTTP simple en Node.js peut être réalisée en utilisant le module http intégré. Voici un exemple de base de la façon de créer un serveur HTTP qui répond avec un message "Hello, World!" pour toute requête.

const http = require('http'); // Importation du module HTTP de Node.js

// Création du serveur HTTP
const server = http.createServer((req, res) => {
  // Définition de l'en-tête de réponse HTTP avec un statut 200 et un type de contenu texte
  res.writeHead(200, {'Content-Type': 'text/plain'});

  // Envoi de la réponse au client
  res.end('Hello, World!\n');
});

// Le serveur écoute sur le port 3000
server.listen(3000, () => {
  console.log('Serveur en écoute sur le port 3000...');
});

Pour exécuter ce serveur, sauvegardez le code dans un fichier, par exemple server.js, puis exécutez-le avec la commande node server.js dans votre terminal. Vous devriez voir le message "Serveur en écoute sur le port 3000...". Si vous ouvrez un navigateur et allez à l'adresse http://localhost:3000, vous devriez voir le message "Hello, World!".

 

Explication du Code

  • require('http') : Cela charge le module HTTP de Node.js qui contient les fonctionnalités nécessaires pour créer un serveur HTTP.
  • http.createServer() : Cette fonction crée une instance de serveur HTTP. La fonction de rappel est appelée chaque fois qu'une requête est reçue.
  • req (requête) : Un objet qui contient des informations sur la requête HTTP, telles que l'URL, les en-têtes de requête, et plus encore.
  • res (réponse) : Un objet utilisé pour renvoyer des données au client. Vous pouvez définir des en-têtes de réponse, le statut HTTP, et le corps de la réponse.
  • res.writeHead() : Définit le statut de la réponse et les en-têtes de réponse.
  • res.end() : Termine la réponse et l'envoie au client. Tout ce qui est passé à end() sera envoyé comme corps de la réponse.
  • server.listen() : Démarre le serveur et le fait écouter sur le port spécifié. Dans cet exemple, le serveur écoute sur le port 3000.

Personnalisation du Serveur

Vous pouvez personnaliser le serveur pour répondre différemment selon l'URL demandée ou d'autres critères en examinant l'objet req. Par exemple :

const http = require('http');

const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Accueil\n');
  } else if (req.url === '/about') {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('À propos\n');
  } else {
    res.writeHead(404, {'Content-Type': 'text/plain'});
    res.end('404 Non Trouvé\n');
  }
});

server.listen(3000, () => {
  console.log('Serveur en écoute sur le port 3000...');
});

 

Dans cet exemple, le serveur répondra avec "Accueil" lorsque la racine est demandée, "À propos" pour "/about", et avec un statut 404 pour toutes les autres routes.

C'est la base de la création d'un serveur HTTP en Node.js. Pour des applications de production, vous voudriez probablement utiliser un framework comme Express, qui simplifie la gestion des routes, des middlewares, et d'autres fonctionnalités de serveur web.

Modifié le: jeudi 2 novembre 2023, 06:38