So richten Sie die mittlere Ebene von nodejs ein

PHPz
Freigeben: 2023-05-08 09:48:07
Original
659 Leute haben es durchsucht

Mit der rasanten Entwicklung des Internets werden Webanwendungen immer komplexer und umfangreicher. Um die Wartbarkeit und Skalierbarkeit von Webanwendungen zu verbessern, übernehmen viele Webentwickler daher das Architekturmuster der mittleren Ebene. Die mittlere Schicht von Node.js ist eine gängige Implementierungsmethode für die mittlere Schicht, da Node.js nicht nur eine effiziente E/A-Betriebsleistung aufweist, sondern auch problemlos ereignisgesteuerte Programmierung implementieren kann.

In diesem Artikel erfahren Sie, wie Sie eine einfache mittlere Ebene in Node.js erstellen und einige allgemeine Funktionen implementieren.

1. Was ist die mittlere Schicht?

Die mittlere Schicht bezieht sich auf die Schicht zwischen dem Client und dem Server. Ihre Hauptfunktion besteht darin, Client-Anfragen zu verarbeiten und Anfragen an den Server zu senden. In Webanwendungen wird die mittlere Ebene häufig verwendet, um verschiedene Dienste in einer Anwendung zu integrieren und so komplexe Geschäftslogiken besser bewältigen zu können. Darüber hinaus können über die mittlere Schicht auch Funktionen wie Caching, Authentifizierung und Autorisierung implementiert werden.

2. Node.js-Mittelschichtimplementierung

In Node.js gibt es zwei Hauptmethoden zur Implementierung der Mittelschicht: die Socket-Mittelschicht basierend auf dem WebSocket-Protokoll und die HTTP-Mittelschicht basierend auf dem HTTP-Protokoll. Unter diesen ist die HTTP-Mittelschicht die am häufigsten verwendete Methode, da sie mit Webstandards kompatibel und einfach zu implementieren und zu warten ist.

Das Folgende ist ein einfaches Beispiel für die mittlere Ebene von Node.js, das Funktionen wie Anforderungsweiterleitung, Anforderungs-Caching und Anforderungsprotokollierung implementiert:

const http = require('http');
const request = require('request');
const url = require('url');

http.createServer((req, res) => {
  // 解析前端请求的url
  const urlObject = url.parse(req.url);
  
  // 配置中间层请求的选项参数
  const options = {
    url: 'http://backend-service' + urlObject.path,
    headers: req.headers
  };
  
  // 处理GET请求的缓存功能
  if (req.method === 'GET') {
    // 检查缓存中是否有数据
    const cacheData = cache.get(options.url);
    if (cacheData) {
      res.writeHead(200, cacheData.headers);
      res.end(cacheData.body);
      console.log('cache hit: ' + options.url);
      return;
    }
  }
  
  // 请求发送到后端服务
  console.log('forwarding request: ' + options.url);
  const proxyRequest = request(options);
  
  // 处理GET请求的缓存功能
  if (req.method === 'GET') {
    // 将响应数据缓存到cache中
    proxyRequest.on('response', (response) => {
      cache.set(options.url, response, response.headers['cache-control']);
    });
  }
  
  // 将请求响应返回给前端
  req.pipe(proxyRequest).pipe(res);
  
  // 请求日志记录
  console.log(req.method + ' ' + req.url + ' ' + res.statusCode);
}).listen(8080);
Nach dem Login kopieren

Im obigen Code verwenden wir zum Erstellen das integrierte http-Modul von Node.js ein HTTP-Server. Nachdem die Anfrage den Server erreicht hat, analysieren wir zunächst die vom Front-End angeforderte URL und leiten die Anfrage entsprechend der URL-Adresse an den Back-End-Dienst weiter (der Standardwert ist hier Backend-Service). Bevor wir die Anfrage an den Back-End-Dienst weiterleiten, haben wir auch einige Verarbeitungen an der Anfrage durchgeführt:

  1. Cache-Funktion zur Verarbeitung von GET-Anfragen: Wenn sich während des Gültigkeitszeitraums Antwortdaten für die Anfrage im Cache befinden, werden die Daten in Der Cache wird direkt an das Front-End zurückgegeben, um wiederholte Anforderungen für Back-End-Dienste zu vermeiden.
  2. Anforderungsprotokoll aufzeichnen: Geben Sie die Anforderungsmethode, die URL und den Antwortstatuscode an die Node.js-Konsole aus.

Darüber hinaus kann die mittlere Schicht von Node.js auch viele andere Funktionen implementieren, z. B. Anforderungsauthentifizierung, Autorisierung, Strombegrenzung, Leistungsschalter usw.

3. Zusammenfassung

Als eine Art Webanwendungsarchitekturmuster besteht die Hauptfunktion der mittleren Schicht darin, verschiedene Dienste in eine Anwendung zu integrieren, um komplexe Geschäftslogik besser verarbeiten zu können. In Node.js können wir die mittlere Schicht über HTTP- oder WebSocket-Protokolle implementieren. Das HTTP-Protokoll ist mit Webstandards kompatibel und einfach zu implementieren und zu warten. Daher ist es die gebräuchlichste Implementierungsmethode der mittleren Ebene.

Beim Aufbau der mittleren Schicht von Node.js können wir die effiziente E/A-Betriebsleistung und die ereignisgesteuerten Programmierfunktionen von Node.js nutzen, um einige allgemeine Funktionen wie Anforderungsweiterleitung, Anforderungs-Caching und Anforderungsprotokollierung zu implementieren . Darüber hinaus kann die mittlere Schicht von Node.js auch viele andere Funktionen implementieren, z. B. Anforderungsauthentifizierung, Autorisierung, Strombegrenzung und -fusion usw., um die Wartbarkeit und Skalierbarkeit von Webanwendungen zu verbessern.

Das obige ist der detaillierte Inhalt vonSo richten Sie die mittlere Ebene von nodejs ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!