In früheren Artikeln habe ich mich darauf konzentriert, einen Node.js -Server zu erstellen, um HTTP -Anforderungen zu bearbeiten. Dieser Artikel befasst sich mit dem Problem umgekehrt, indem Sie Ihnen zeigen, wie HTTP -Anforderungen von Ihren Node.js -Anwendungen erstellt werden. M?glicherweise fragen Sie sich, warum Sie das tun m?chten. Zwei Anwendungen kommen sofort in den Sinn - Web -Scraping und Proxying. Scrapers sind Software, die Webseiten herunterladen und programmatisch Informationen aus ihnen extrahieren. Proxy -Server fungieren als Vermittler, leiten Kundenanfragen an andere Server weiter und senden die Antworten zurück.
Key Takeaways
- Das Anforderungsmodul in node.js ist ein einfaches und flexibles Werkzeug zum Erstellen von HTTP -Anforderungen, einschlie?lich Get, Post, Put und L?schen. Es ist ideal für die Interaktion mit erholsamen APIs und kann für Aufgaben wie Web -Scraping und Proxying verwendet werden.
- Das Anforderungsmodul kann parametrisiert werden, um HTTP -Anforderungen zu ?ndern, sodass die Konfiguration von Parametern wie URI, Methode, Zeitüberschreitungs- und Umleitungsbehandlung. Es unterstützt auch die Einreichung von Formulardaten mithilfe von Postanforderungen und kann Cookies für die Verfolgung von Benutzerinteraktionen verarbeiten.
- W?hrend das Anforderungsmodul leistungsf?hig und vielseitig ist, wird empfohlen, seine Dokumentation für ein umfassendes Verst?ndnis seiner F?higkeiten zu verweisen. Das Modul kann auch mit anderen Modulen wie dem Dateisystemmodul kombiniert werden, um komplexere Aufgaben wie Streaming -HTTP -Anforderungen an und von Dateien zu streamen.
Das Anforderungsmodul
Der einfachste Weg, um HTTP -Anforderungen in node.js zu erstellen, ist die Verwendung des Anforderungsmoduls. Mit der Anforderung von Mikeal Rogers k?nnen Sie alle Arten von HTTP -Anfragen erstellen, einschlie?lich Get, Post, Put und L?schen. Seine Flexibilit?t macht das Anforderungsmodul ideal für die Interaktion mit erholsamen APIs. Sie k?nnen die Anforderung mit dem folgenden NPM -Befehl installieren.
npm install request
Erstellen Sie nach der Installation der Anforderung eine neue Datei node.js, die den unten angegebenen Code enth?lt. Die erste Zeile des Beispiels wird verwendet, um die Anfrage in das Programm zu importieren. Eine HTTP -Anforderung zu erstellen ist so einfach wie das Aufrufen der Funktion Request (). In diesem Beispiel stellen wir eine Anfrage zum Herunterladen der JSPRO -Homepage. Das zweite Argument für Anfrage () ist natürlich eine Rückruffunktion.
<span>var request = require("request"); </span><span>request("http://www.sitepoint.com", function(error<span>, response, body</span>) { </span> <span>console.log(body); </span><span>});</span>
Die Rückruffunktion Request () enth?lt drei Argumente - Fehler, Antwort und K?rper. Wie der Name schon sagt, enth?lt der Fehler Informationen zu Problemen, die w?hrend der HTTP -Anfrage aufgetreten sind. Das Antwortargument ist ein Objekt, das eine Vielzahl von Daten enth?lt, die aus dem Anruf zurückgegeben wurden, einschlie?lich des Statuscode, den Header und vielem mehr. Das dritte Rückrufargument, den K?rper, ist der K?rper der Reaktion. Im vorherigen Beispiel enthielt Body den Quellcode für die JSPRO -Homepage.
Das Anforderungsmodul kann auch mit dem Dateisystemmodul kombiniert werden, um HTTP -Anforderungen an und von Dateien zu streamen. Das folgende Beispiel holt erneut JSPRO. Anstatt den Quellcode in der Konsole anzuzeigen, wird er jedoch in eine Datei mit dem Namen "JSPRO.HTM" geschrieben.
npm install request
Parametrisierungsanforderungen
Die vorherigen Beispiele haben einfache GET -Anforderungen für URLs erstellt. Wir k?nnen jedoch die HTTP -Anforderung ?ndern, indem wir ein Konfigurationsobjekt als erstes Argument für Request () übergeben. Das folgende Beispiel verwendet die leistungsst?rkere Syntax, um JSPRO erneut herunterzuladen. Beachten Sie die zahlreichen Konfigurationsparameter. Die URI- und Methodenparameter geben Anfrage an, eine Get -Anfrage an JSPRO zu senden.
<span>var request = require("request"); </span><span>request("http://www.sitepoint.com", function(error<span>, response, body</span>) { </span> <span>console.log(body); </span><span>});</span>
Der Zeitüberschreitungsparameter gibt die Anfrage an, 10.000 Millisekunden (zehn Sekunden) auf eine Antwort zu warten, bevor Sie aufgeben. Die letzten beiden Parameter befassen sich mit den folgenden Weiterleitungen. Auf vielen Seiten führen überl?sten hinter den Kulissen ohne Wissen des Benutzers durch. Die Parameter für FollowRedirect und MaxRedirects weisen die Anfrage an, bis zu zehn 3 xx HTTP -Umleitungen zu folgen. Beachten Sie auch, dass Request () viele andere Parameter unterstützt, die hier nicht angezeigt werden.
Formulardaten
sendenWie bereits erw?hnt, unterstützt Anfrage mehr als nur Anfragen. Eine sehr h?ufige Operation ist die Einreichung von Formulardaten mithilfe einer Postanforderung. Das folgende Beispiel verwendet den Formularparameter von Request (), um den Namen eines Benutzers als Teil eines Beitrags zu senden. Die PHP -Seite antwortet dann, indem Sie den Benutzer mit Namen begrü?en.
<span>var request = require("request"); </span><span>var fs = require("fs"); </span><span>request("http://www.sitepoint.com").pipe(fs.createWriteStream("jspro.htm"));</span>
Umgang mit Cookies
Viele Websites verfolgen verschiedene Benutzerinteraktionen mit Cookies. Cookies sind kleine Datenstücke, die mit jeder HTTP -Transaktion zwischen Client und Server weitergegeben werden. Um die Verwendung von Cookies zu erleichtern, stellt die Anfrage die Methoden jar () und Cookie () bereit. Einzelne Cookies werden mit der Cookie () -Methode erstellt. In Zeile 3 des folgenden Beispiels wird ein Cookie erstellt, das den Namen des Benutzers angibt. Das Cookie wird dann zum Cookie -Glas hinzugefügt, das in Zeile 2 erstellt wurde. Wenn die HTTP -Anforderung gestellt wird, wird der JAR -Parameter verwendet, um das Cookie -JAR an den Server zu senden.
<span>var request = require("request"); </span><span>request({ </span> <span>uri: "http://www.sitepoint.com", </span> <span>method: "GET", </span> <span>timeout: 10000, </span> <span>followRedirect: true, </span> <span>maxRedirects: 10 </span><span>}, function(error<span>, response, body</span>) { </span> <span>console.log(body); </span><span>});</span>
Wenn die Antwort empfangen wird, wird der Benutzer als John begrü?t, der im Cookie gespeicherte Name. Das Cookie -Glas wird auch mit allen ?nderungen des Servers aktualisiert. Wenn Sie das Cookie -Glas vor und nach der Anfrage ausdrucken, werden Sie feststellen, dass der Server den Wert des Cookies von "John" in "Fremder" ge?ndert hat. Das gleiche Cookie -Glas kann an aufeinanderfolgende HTTP -Anfragen übergeben werden, um die Interaktionen eines echten Benutzers mit einer Website nachzuahmen.
Schlussfolgerung
Dieser Artikel hat das einfache, aber leistungsstarke Anforderungsmodul eingeführt. Da dieser Artikel nicht umfassend ist, empfehle ich, die Dokumentation zumindest zu durchsuchen, um zu sehen, was noch andere Anforderungen beantragen k?nnen. Seien Sie gespannt auf einen bevorstehenden Artikel, der das Web -Scraping mithilfe der Anforderung ausführlicher abdeckt.
Und wenn Sie diesen Beitrag genossen haben, werden Sie es lieben, lernbar zu sein. Der Ort, um frische F?higkeiten und Techniken von den Meistern zu erlernen. Mitglieder erhalten sofortigen Zugriff auf alle eBooks und interaktiven Online -Kurse von SitePoint, wie Jump Start JavaScript.
Kommentare zu diesem Artikel sind geschlossen. Haben Sie eine Frage zu JavaScript? Warum nicht in unseren Foren fragen?
FAQs zum Erstellen von HTTP -Anforderungen in node.js
Wie kann ich HTTP -Anforderungen in node.js stellen?
Sie k?nnen HTTP-Anforderungen in node.js mit den integrierten HTTP- oder HTTPS -Level HTTP-Anforderungen. HTTP -Anforderungen in node.js?
Bibliotheken von Drittanbietern bieten benutzerfreundlichere APIs, vielversprechende oder asynchronisierte Unterstützung und fügten Funktionen wie Anforderungs-/Antwortbehandlungen und automatisches JSON-Parsen hinzu, wodurch sie für Entwickler beliebte Entscheidungen treffen.Was ist der Unterschied zwischen Get- und Post -Anfragen in node.js?
GET -Anforderungen werden verwendet, um Daten von einem Server abzurufen, w?hrend Postanforderungen zum Senden von Daten zur Verarbeitung oder zum Speicher an den Server verwendet werden, h?ufig in Formularen oder API -Anforderungen verwendet.Kann ich machen Anfragen mit dem integrierten HTTP-Modul in node.js erhalten und posten?
Ja, Sie k?nnen Anforderungen mit den HTTP- oder HTTPS-Modulen erhalten und ver?ffentlichen, aber es erfordert mehr Code mit niedrigem Niveau für die Anforderungskonfiguration und die Antwort. Anfrage mit dem HTTP -Modul in node.js?Sie k?nnen die Methode http.get () verwenden, um eine GET -Anforderung zu erstellen, die URL und eine Rückruffunktion zu übergeben, um die Antwortdaten zu verarbeiten. Anfragen in node.js?
synchrone Anforderungen blockieren die Ereignisschleife, bis die Anforderung abgeschlossen ist, w?hrend asynchrone Anforderungen es Ihrer Anwendung erm?glichen, andere Aufgaben weiter zu verarbeiten, w?hrend ich auf die Antwort wartet. in node.js?Sie k?nnen Fehler mit Try/Catch -Bl?cken für synchrone Anforderungen und durch Hinzufügen von Fehlerbehandlungen im Rückruf oder Verwendung von Versprechen für asynchrone Anforderungen behandeln. Node.js?
Ja, Sie k?nnen Authentifizierungs-Token oder Anmeldeinformationen in die Anforderungsheader aufnehmen, wenn Sie Bibliotheken von Drittanbietern wie Axios oder Knotenfetch verwenden. Viele APIs erfordern eine Authentifizierung für den Zugriff.Ja, Sie k?nnen Dateien hochladen, indem Sie eine Postanforderung mit einem Multipart/Form-Daten-Inhaltstyp senden. Bibliotheken wie Axios und das Anforderungsmodul bieten Optionen für das Hochladen von Dateien.
Wie kann ich gleichzeitige oder parallele HTTP -Anforderungen in node.js stellen?
Um mehrere HTTP -Anfragen gleichzeitig zu stellen, k?nnen Sie asynchrone Funktionen wie Versprechen oder Async/Warteen verwenden, oder Sie k?nnen Bibliotheken verwenden, die eine parallele Anforderung zur Handhabung unterstützen.
Das obige ist der detaillierte Inhalt vonHTTP -Anforderungen in node.js erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Welches JavaScript -Framework ist die beste Wahl? Die Antwort besteht darin, die am besten geeigneten nach Ihren Bedürfnissen zu w?hlen. 1.React ist flexibel und kostenlos und für mittlere und gro?e Projekte geeignet, für die hohe Anpassungs- und Teamarchitekturf?higkeiten erforderlich sind. 2. Angular bietet vollst?ndige L?sungen, die für Anwendungen auf Unternehmensebene und langfristige Wartung geeignet sind. 3.. Vue ist einfach zu bedienen, geeignet für kleine und mittlere Projekte oder schnelle Entwicklung. Unabh?ngig davon, ob es einen technologischen Stack, die Teamgr??e, der Projektlebenszyklus gibt und ob SSR erforderlich ist, sind auch wichtige Faktoren für die Auswahl eines Rahmens. Kurz gesagt, es gibt keinen absolut besten Rahmen, die beste Wahl ist die, die Ihren Bedürfnissen entspricht.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.
