Module Web Node.js


Module Web Node.js


Qu'est-ce qu'un serveur web ?

Le serveur Web fait généralement référence à un serveur de site Web, qui fait référence à un programme qui réside 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 sur le Web. Il doit uniquement prendre en charge le protocole HTTP, le format de document HTML et l'URL, et coopérer 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 obtiennent les données de la base de données via des langages de script et renvoient les résultats au navigateur client.


Les trois serveurs Web les plus courants actuellement sont Apache, Nginx et IIS.


Architecture de l'application Web

  • Client - client, fait généralement référence au navigateur, le navigateur peut envoyer des requêtes au le serveur demande des données.

  • Serveur - Serveur, fait généralement référence au serveur Web, qui peut recevoir les demandes des clients et envoyer des données de réponse au client.

  • Business - La couche métier gère les applications via le serveur Web, telles que l'interaction avec les bases de données, les opérations logiques, l'appel de programmes externes, etc.

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


Utiliser Node pour créer un serveur Web

Node.js fournit le module http Le module http est principalement utilisé pour créer des serveurs et des clients HTTP, en utilisant. Serveurs HTTP. Ou la fonction client doit appeler le module http, le code est le suivant :

var http = require('http');

Ce qui suit est une démonstration d'une architecture de serveur HTTP la plus basique (utilisant le port 8081), créez un fichier server.js. , le code est le suivant :

var http = require('http');var fs = require('fs');var url = require('url');// 创建服务器http.createServer( function (request, response) {  
   // 解析请求,包括文件名   var pathname = url.parse(request.url).pathname;   
   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");   
   // 从文件系统中读取请求的文件内容
   fs.readFile(pathname.substr(1), function (err, data) {      if (err) {
         console.log(err);         // HTTP 状态码: 404 : NOT FOUND         // Content Type: text/plain
         response.writeHead(404, {'Content-Type': 'text/html'});      }else{         
         // HTTP 状态码: 200 : OK         // Content Type: text/plain
         response.writeHead(200, {'Content-Type': 'text/html'});         
         // 响应文件内容
         response.write(data.toString());      }      //  发送响应数据
      response.end();   });   }).listen(8081);// 控制台会输出以下信息console.log('Server running at http://127.0.0.1:8081/');

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

<html><head><title>Sample Page</title></head><body>Hello World!</body></html>

Exécutez le fichier server.js :

$ node server.jsServer running at http://127.0.0.1:8081/

Ensuite, nous ouvrons l'adresse dans le navigateur : http ://127.0.0.1:8081/index.htm, l'affichage est comme indiqué ci-dessous :

La console affiche les informations lors de l'exécution du serveur. js est le suivant :

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

Exemple de démonstration Gif


Utiliser Node pour créer un client Web

Node Pour créer un client Web, vous devez introduisez le module http et créez un fichier client.js. Le code est le suivant :

var http = require('http');// 用于请求的选项var options = {
   host: 'localhost',
   port: '8081',
   path: '/index.htm'  };// 处理响应的回调函数var callback = function(response){   // 不断更新数据   var body = '';
   response.on('data', function(data) {
      body += data;   });
   
   response.on('end', function() {      // 数据接收完成
      console.log(body);   });}// 向服务端发送请求var req = http.request(options, callback);req.end();

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

$ node client.js<html><head><title>Sample Page</title></head><body>Hello World!</body></html>
<🎜. >Les informations de sortie de la console lors de l'exécution de server.js sont les suivantes :

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

Exemple de démonstration GIF