Inhaltsverzeichnis
http-Modul
createServer 方法
listen 方法
总结
createServer-Methode
Listen-Methode
Zusammenfassung🎜🎜Wir haben die grundlegende Verwendung des http-Moduls eingeführt, hauptsächlich mit createServer zum Erstellen von Diensten und dann Rufen Sie die Methode listen auf, um den Dienst zu starten und auf Verbindungen zu warten. createServer empfängt eine Rückruffunktion, um eine bestimmte Anfrage gezielt zu verarbeiten. Beim Schreiben von Webdiensten werden hauptsächlich die beiden Parameter der Rückruffunktion request und response verwendet. Das Folgende wird im Detail vorgestellt. 🎜🎜Weitere Informationen zu Knoten finden Sie unter: 🎜nodejs-Tutorial🎜! 🎜
Heim Web-Frontend js-Tutorial Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung

Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung

Feb 03, 2023 pm 06:32 PM
node http模块

Dieser Artikel stellt Ihnen das Node.js-http-Modul vor und stellt die Methoden createServer und listen vor. Ich hoffe, er wird Ihnen hilfreich sein!

Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung

http-Modul

Verwenden Sie Node.js zum Erstellen von Webdiensten und verlassen Sie sich dabei hauptsächlich auf das integrierte http-Modul. Die klassischen Frameworks express.js und koa.js sind alle in unterschiedlichem Maße mit dem http-Modul als Kern gekapselt. http 模块。经典的 express.js、koa.js 框架都是以 http 模块为核心,进行的不同程度的封装。

创建一个最简单的 Web 服务只需要几行代码。新建一个 index.js 文件,输入以下内容:

// 1.导入 http 模块
const http = require('http');

// 2. 调用 createServer 方法创建服务
const server = http.createServer((request, response) => {
    // 3.响应给浏览器的内容
	response.end('Hello, World'); 
});

// 4.执行 listen 方法,启动服务
server.listen(3000, () => {
    console.log('服务器启动成功:http://localhost:3000')
})
Nach dem Login kopieren

然后打开命令行工具,使用 node 命令执行该文件:

node index.js
Nach dem Login kopieren

命令行工具中会打印:

服务器启动成功:http://localhost:3000
Nach dem Login kopieren

之后打开浏览器,访问 http://localhost:3000,就能看到以下内容:

Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung

到这里,只需件简简单单的 6 行代码,就创建了一个 web 服务。【相关教程推荐:nodejs视频教程编程教学

createServer 方法

可以看到,创建 Web 服务的核心方法就是 createServer 方法。

它接收一个回调函数,回调参数接收两个参数,分别是 :

  • request 对象:表示 HTTP 请求对象,里面包含了客户端本次请求携带的信息
  • response 对象:表示 HTTP 响应对象,用于向客户端设置响应的信息

这个回调函数,就是处理 http 请求,设置 http 响应的主要场所。所以,编写 web 服务,其实就是在不停的在这个函数中处理请求和响应内容。这也是基于 HTTP 协议本身的请求-响应模型所决定的。当然,实际开发中肯定不能这么杂糅的写,都是使用框架,那会有很合理的中间件机制和分层。

listen 方法

我们都知道,TCP 协议是 HTTP 协议的底层协议,所有 HTTP 请求的数据都是利用 TCP 传输的。要发送 HTTP 请求,必须先建立 TCP 连接

Node 中要创建 HTTP 服务也是如此。createServer 方法执行后会创建一个 Server 类的实例,该 Server 类又继承自另一个内置模块 net 中的 Server 类,它身上有一个 listen 方法。下面是相关的类型声明,可以理解这其中的关系。

// net 模块

class Server extends EventEmitter {
 
        /**
         * 启动服务器监听连接。此 Server 可以是 TCP 或 IPC 服务器,具体取决于它所监听的内容。
         */
        // 有若干重载,这是最常使用的一种方法
        listen(port?: number, hostname?: string, listeningListener?: () => void): this;
        listen(port?: number, listeningListener?: () => void): this;
}


// http 模块
import { Server as NetServer } from 'node:net';

function createServer<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    >(requestListener?: RequestListener<Request, Response>): Server<Request, Response>;
      
class Server<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    > extends NetServer {}
Nach dem Login kopieren

所以通过 createServer 方法创建了服务之后,还用再调用 listen 方法,用于启动该服务,监听连接

它有多种重载,最常用的一种就是监听一个端口,在启动成功后,执行回调函数:

server.listen(3000, () => {
    console.log(&#39;服务器启动成功:http://localhost:3000&#39;)
})
Nach dem Login kopieren

如果服务启动失败,比如出现端口占用时,控制台中会直接报错,就不再执行后面的回调函数了。

再介绍两种其他的重载,使用的并不多。

一种是不指定端口号,此时操作系统会随机分配一个可用的端口号。在服务启动成功后,可以通过 server.address().port 属性来获得分配的端口号:

server.listen(() => {
    const port = server.address().port
    console.log(port)
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
Nach dem Login kopieren

试一下:

Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung

一种是指定要监听的主机名

当不指定 host 时,默认为 0.0.0.0(IPv4)或者 ::(IPv6),支持网络中所有的主机进行访问

如果设置为 locolhost 或者 127.0.0.1,则只能自己的主机访问。

server.listen(3000, &#39;localhost&#39;, () => {
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
Nach dem Login kopieren

总结

我们介绍了 http 模块的基本用法,主要使用 createServer 来创建服务,再调用 listen 方法来启动服务,监听连接。createServer 接收回调函数用来具体处理某一个请求,编写 web 服务主要就是利用回调函数的两个参数 requestresponse

Um den einfachsten Webdienst zu erstellen, sind nur wenige Codezeilen erforderlich. Erstellen Sie eine neue index.js-Datei und geben Sie den folgenden Inhalt ein:

rrreee Öffnen Sie dann das Befehlszeilentool und verwenden Sie den Befehl node, um die Datei auszuführen: rrreee

The Das Befehlszeilentool wird gedruckt: 🎜rrreee🎜Öffnen Sie den Browser und besuchen Sie http://localhost:3000. Sie sehen den folgenden Inhalt:🎜🎜Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung🎜🎜Zu diesem Zeitpunkt benötigen Sie nur noch 6 einfache Codezeilen, um einen Webdienst zu erstellen. [Empfohlene verwandte Tutorials: nodejs-Video-Tutorial🎜, Programmierunterricht🎜]🎜

createServer-Methode

🎜Sie können sehen, dass das Erstellen eines Web Die Kernmethode des Dienstes ist die Methode createServer. 🎜🎜Es empfängt eine Rückruffunktion und der Rückrufparameter empfängt zwei Parameter: 🎜
  • Anfrageobjekt: stellt das HTTP-Anfrageobjekt dar, das die vom Client in dieser Anfrage übertragenen Informationen enthält
  • Antwortobjekt: stellt das HTTP-Antwortobjekt dar, das verwendet wird, um Antwortinformationen für den Client festzulegen
🎜Diese Rückruffunktion dient zur Verarbeitung von http Anfragen. Der Hauptort zum Festlegen von HTTP-Antworten. Daher bedeutet das Schreiben eines Webdienstes tatsächlich, dass der Anforderungs- und Antwortinhalt in dieser Funktion ständig verarbeitet wird. Dies wird auch durch das Request-Response-Modell des HTTP-Protokolls selbst bestimmt. Natürlich können wir in der tatsächlichen Entwicklung definitiv nicht so gemischt schreiben. Wir alle verwenden Frameworks, die über sehr vernünftige Middleware-Mechanismen und Schichten verfügen. 🎜

Listen-Methode

🎜Wir alle wissen, dass das TCP-Protokoll das zugrunde liegende Protokoll des HTTP-Protokolls ist und alle HTTP-Anforderungsdaten über TCP übertragen werden. Um eine HTTP-Anfrage zu senden, muss zunächst eine TCP-Verbindung hergestellt werden. 🎜🎜Dasselbe gilt für die Erstellung von HTTP-Diensten in Node. Nachdem die Methode createServer ausgeführt wurde, wird eine Instanz der Klasse Server erstellt. Die Klasse Server erbt von einem anderen integrierten Modul net Die Klasse Server verfügt über eine Methode listen. Nachfolgend finden Sie die relevanten Typdeklarationen zum Verständnis der Beziehung. 🎜rrreee🎜Nachdem Sie den Dienst über die Methode createServer erstellt haben, rufen Sie die Methode listen erneut auf, um den Dienst zu starten und auf Verbindungen zu warten. 🎜🎜Es gibt mehrere Überladungen. Die am häufigsten verwendete Methode ist das Abhören eines Ports. Führen Sie nach erfolgreichem Start die Rückruffunktion aus: 🎜rrreee🎜Wenn der Dienst beispielsweise nicht gestartet werden kann, wenn der Port belegt ist Der Fehler wird direkt in der Konsole gemeldet. Führen Sie dann die nachfolgende Callback-Funktion aus. 🎜🎜Wir stellen zwei weitere Überladungen vor, die nicht oft verwendet werden. 🎜🎜Eine besteht darin, keine Portnummer anzugeben. Zu diesem Zeitpunkt weist das Betriebssystem zufällig eine verfügbare Portnummer zu. Nachdem der Dienst erfolgreich gestartet wurde, können Sie die zugewiesene Portnummer über die Eigenschaft server.address().port abrufen: 🎜rrreee🎜Probieren Sie es aus: 🎜🎜Lernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung🎜🎜Eine besteht darin, den zu überwachenden Hostnamen anzugeben . 🎜🎜Wenn host nicht angegeben ist, ist der Standardwert 0.0.0.0 (IPv4) oder :: (IPv6), unterstützt in der Netzwerkzugriff von allen Hosts. 🎜🎜Wenn es auf locolhost oder 127.0.0.1 eingestellt ist, kann nur Ihr eigener Host darauf zugreifen. 🎜rrreee

Zusammenfassung🎜🎜Wir haben die grundlegende Verwendung des http-Moduls eingeführt, hauptsächlich mit createServer zum Erstellen von Diensten und dann Rufen Sie die Methode listen auf, um den Dienst zu starten und auf Verbindungen zu warten. createServer empfängt eine Rückruffunktion, um eine bestimmte Anfrage gezielt zu verarbeiten. Beim Schreiben von Webdiensten werden hauptsächlich die beiden Parameter der Rückruffunktion request und response verwendet. Das Folgende wird im Detail vorgestellt. 🎜🎜Weitere Informationen zu Knoten finden Sie unter: 🎜nodejs-Tutorial🎜! 🎜

Das obige ist der detaillierte Inhalt vonLernen des Knoten-HTTP-Moduls: Sprechen Sie über die grundlegende Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So löschen Sie einen Knoten in NVM So löschen Sie einen Knoten in NVM Dec 29, 2022 am 10:07 AM

So löschen Sie einen Knoten mit nvm: 1. Laden Sie „nvm-setup.zip“ herunter und installieren Sie es auf dem Laufwerk C. 2. Konfigurieren Sie Umgebungsvariablen und überprüfen Sie die Versionsnummer mit dem Befehl „nvm -v“. install“-Befehl Knoten installieren; 4. Löschen Sie den installierten Knoten über den Befehl „nvm uninstall“.

So verwenden Sie Express für den Datei-Upload im Knotenprojekt So verwenden Sie Express für den Datei-Upload im Knotenprojekt Mar 28, 2023 pm 07:28 PM

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

Wie führt man eine Docker-Spiegelung des Node-Dienstes durch? Detaillierte Erläuterung der ultimativen Optimierung Wie führt man eine Docker-Spiegelung des Node-Dienstes durch? Detaillierte Erläuterung der ultimativen Optimierung Oct 19, 2022 pm 07:38 PM

Während dieser Zeit habe ich einen dynamischen HTML-Dienst entwickelt, der allen Kategorien von Tencent-Dokumenten gemeinsam ist. Um die Generierung und Bereitstellung des Zugriffs auf verschiedene Kategorien zu erleichtern und dem Trend der Cloud-Migration zu folgen, habe ich über die Verwendung von Docker nachgedacht Serviceinhalte verwalten und Produktversionen einheitlich verwalten. In diesem Artikel werden die Optimierungserfahrungen, die ich bei der Bereitstellung von Docker gesammelt habe, als Referenz weitergegeben.

Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Apr 03, 2023 pm 06:02 PM

In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Dec 02, 2022 pm 09:06 PM

Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg ein Node-Projekt in eine ausführbare Datei packen. Ich hoffe, dass er Ihnen weiterhilft!

Was tun, wenn npm node gyp ausfällt? Was tun, wenn npm node gyp ausfällt? Dec 29, 2022 pm 02:42 PM

npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Feb 24, 2023 pm 07:33 PM

Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Im folgenden Artikel erfahren Sie, wie Sie mit Node ein Single-Sign-On-System implementieren. Ich hoffe, dass er Ihnen weiterhilft!

See all articles