Module Web de Node.js


Qu'est-ce qu'un serveur Web ?

Un serveur web désigne généralement un serveur de site web, c'est-à-dire un programme résidant sur un certain type d'ordinateur sur Internet. La fonction de base d'un serveur web est de fournir des services de navigation d'informations web. Il lui suffit de prendre en charge le protocole HTTP, le format de document HTML et les URL, et de fonctionner avec le navigateur web du client.

La plupart des serveurs web prennent en charge les langages de script côté serveur (PHP, Python, Ruby), etc., et utilisent des langages de script pour récupérer des données depuis la base de données et renvoyer les résultats au navigateur client.

Actuellement, les trois serveurs web les plus répandus sont Apache, Nginx et IIS.


Architecture d'application web

  • Client- Client, désigne généralement le navigateur. Le navigateur peut demander des données au serveur via le protocole HTTP.

  • Serveur- Serveur, désigne généralement le serveur web. Il peut recevoir les requêtes du client et envoyer des données de réponse au client.

  • Métier- Couche métier : traite les applications via le serveur web, telles que l'interaction avec la base de données, l'exécution d'opérations logiques, l'appel de programmes externes, etc.

  • Données- Couche de données, généralement constituée d'une base de données.


Créer un serveur web avec Node

Node.js fournit le module http. Le module http sert principalement à construire des serveurs et des clients HTTP. Pour utiliser les fonctionnalités de serveur ou de client HTTP, vous devez faire appel au module http. Le code est le suivant :

var http = require('http');

Ce qui suit montre une architecture de serveur HTTP de base (utilisant le port 8080). Créez un fichier server.js avec le code suivant :

Exemple

var http = require('http'); var fs = require('fs'); var url = require('url'); //Créer un serveur http.createServer( fonction (request, response) { //Analyser la requête, y compris le nom de fichier var pathname = url.parse(request.url).pathname; //Afficher le nom du fichier demandé console.log("Requête pour " + pathname + " reçue."); //Lire le contenu du fichier demandé depuis le système de fichiers fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); //Code d'état HTTP : 404 : NON TROUVÉ // Type de contenu : text/html response.writeHead(404, {'Content-Type': 'text/html'}); }else{ //Code d'état HTTP : 200 : OK // Type de contenu : text/html response.writeHead(200, {'Content-Type': 'text/html'}); //Contenu du fichier de réponse response.write(data.toString()); } //Envoyer les données de réponse response.end(); }); }).listen(8080); //La console affichera les informations suivantes console.log('Server running at http://127.0.0.1:8080/');

Ensuite, nous créons un fichier index.html dans ce répertoire. Le code est le suivant :

fichier index.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Exemple (example.com)</title> </head> <body> <h1>Mon premier titre</h1> <p>Mon premier paragraphe.</p> </body> </html>

Exécutez le fichier server.js :

$ node server.js
Server running at http://127.0.0.1:8080/

Ensuite, nous ouvrons l'adresse dans le navigateur :http://127.0.0.1:8080/index.html, et elle s'affiche comme le montre la figure ci-dessous :

Les informations affichées par la console après l'exécution de server.js sont les suivantes :

Server running at http://127.0.0.1:8080/
Request for /index.html received.     #  客户端请求信息

Créer un client web avec Node

Pour créer un client web avec Node, vous devez importer le module http. Créez un fichier client.js avec le code suivant :

Exemple

var http = require('http'); //Options de la requête var options = { host: 'localhost', port: '8080', path: '/index.html' }; //Fonction de rappel pour gérer la réponse var callback = function(response){ //Mettre à jour les données en continu var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { //Réception des données terminée console.log(body); }); } //Envoyer une requête au serveur var req = http.request(options, callback); req.end();

Ouvrez un nouveau terminal, exécutez le fichier client.js, et le résultat de sortie est le suivant :

$ node  client.js 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example(example.com)</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
</body>
</html>

Les informations affichées par la console après l'exécution de server.js sont les suivantes :

Server running at http://127.0.0.1:8080/
Request for /index.html received.   # 客户端请求信息
Autres extensions