Maison  >  Article  >  interface Web  >  Processus de demande nodejs

Processus de demande nodejs

PHPz
PHPzoriginal
2023-05-17 09:19:07503parcourir

Node.js est un environnement JavaScript côté serveur basé sur un modèle d'E/S non bloquant et piloté par les événements, qui peut être utilisé pour créer des applications Web efficaces et évolutives. Pour le processus de traitement des requêtes de Node.js, nous devons nous concentrer respectivement sur la mise en œuvre du serveur HTTP et du routage.

Serveur HTTP

Le module serveur HTTP de Node.js Le module http fournit une méthode createServer() pour créer un serveur HTTP. Chaque fois qu'un client envoie une requête au serveur, cette méthode renvoie une instance du serveur, nous permettant de surveiller et de répondre à cette instance.

Créer un serveur HTTP

const http = require('http');

http.createServer((request, response) => {
  // 请求处理
}).listen(8080);

Événement de requête du serveur HTTP

Chaque fois qu'un utilisateur envoie une requête HTTP au serveur, le serveur générera automatiquement un objet http.IncomingMessage et déclenchera l'événement de requête, à travers lequel nous pouvons recevoir et gérer Requêtes HTTP. L'objet http.IncomingMessage contient également toutes les données transportées par la requête, telles que le chemin de la requête, la méthode de la requête, l'en-tête de la requête, le corps de la requête, etc.

const http = require('http');

http.createServer((request, response) => {
  // request事件
  request.on('data', (chunk) => {
    console.log(chunk.toString());
  });

  // 处理请求
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
');
}).listen(8080);

Routing

Le routage fait référence à la correspondance du processeur correspondant en fonction du chemin de la demande d'URL pour obtenir différentes méthodes et effets d'accès à l'URL.

Implémentation du routage

Nous pouvons utiliser un objet JavaScript pour stocker les méthodes de processeur correspondant à différentes URL, puis dans l'événement de requête du serveur http, faire correspondre l'objet en fonction du chemin de la requête pour trouver la méthode de processeur correspondante pour le traitement.

const http = require('http');

const urlHandler = {
  '/': function(request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World
');
  },
  '/about': function(request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('About page
');
  }
};

http.createServer((request, response) => {
  const path = request.url;

  if (urlHandler[path]) {
    urlHandler[path](request, response);
  } else {
    response.writeHead(404, {'Content-Type': 'text/plain'});
    response.end('404 Not Found
');
  }
}).listen(8080);

Ce qui précède est une implémentation simple du processus de traitement des requêtes de Node.js. Grâce au travail collaboratif du serveur HTTP et du module de routage, nous pouvons construire un serveur Web efficace et évolutif pour implémenter diverses applications Web intéressantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn