Node.js est un environnement d'exécution JavaScript construit sur le moteur Chrome V8 et est largement utilisé dans le développement d'applications Web. Dans Node.js, nous pouvons facilement créer un serveur HTTP et accéder aux pages Web du serveur via le navigateur. Cet article explique comment utiliser Node.js pour créer un serveur HTTP.
Tout d'abord, nous devons installer l'environnement Node.js localement. Vous pouvez accéder au site officiel de Node.js https://nodejs.org/ pour télécharger la dernière version et l'installer. Une fois l'installation terminée, vous pouvez saisir la commande suivante dans la ligne de commande pour vérifier si l'installation a réussi :
node -v
Si le numéro de version de Node.js s'affiche correctement, l'installation est réussie.
Créer un serveur HTTP avec Node.js est très simple. Il vous suffit d'introduire le module "http" intégré de Node.js dans un fichier JavaScript, de créer un serveur et d'écouter le port spécifié. Voici un exemple simple :
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Le code ci-dessus crée un serveur HTTP et écoute le port 3000. Lorsqu'un client accède au serveur, il renvoie la chaîne "Hello World!".
Après avoir démarré le serveur HTTP, nous pouvons utiliser le navigateur pour accéder au serveur. Entrez "http://localhost:3000" dans la barre d'adresse du navigateur (si le serveur ne fonctionne pas localement, remplacez "localhost" par l'adresse IP du serveur) et vous verrez le navigateur afficher la chaîne de caractères "Hello World!".
L'exemple ci-dessus n'est que l'exemple le plus simple. En fait, lors du traitement des requêtes HTTP, nous devons générer des réponses correspondantes en fonction du contenu de l'en-tête et du corps de la requête. Le module http de Node.js nous fournit une API spécifiquement pour gérer les requêtes. Par exemple, nous pouvons obtenir l'adresse URL demandée via req.url et obtenir la méthode demandée via req.method. Voici un exemple de renvoi de différents messages en fonction de différentes adresses URL :
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); if (req.url === '/about') { res.end('This is about page'); } else if (req.url === '/contact') { res.end('This is contact page'); } else { res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Visitez "http://localhost:3000/about" dans le navigateur, vous verrez le navigateur afficher la chaîne "Ceci est à propos de la page" ; " http://localhost:3000/contact", vous verrez le navigateur afficher la chaîne "This is contact page" ; visitez "http://localhost:3000", vous verrez la chaîne du navigateur afficher "Hello World!" .
En plus du traitement des requêtes GET, nous pouvons également traiter les requêtes POST et stocker les données transmises par le client au serveur. Le module http de Node.js nous fournit également une API pour traiter les requêtes POST. Voici un exemple simple de traitement de requête POST :
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString(); }); req.on('end', () => { console.log(`Received data: ${body}`); res.end('Data received'); }); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Lors du traitement de la requête HTTP, le code ci-dessus détermine d'abord si la méthode de requête est POST. S'il s'agit de POST, il surveille l'événement de transmission de données et stocke les données transmises dans le corps. variable et imprimer une fois le transfert de données terminé. Dans le fichier HTML du client, vous pouvez utiliser l'élément