Verwenden des HTTP-Objekts in Node.js

Inhaltsverzeichnis
Das HTTP-Modul in unseren Anwendungen geschrieben in Node.js Sie helfen uns, einen Teil der Funktionalität zu entwickeln, um unsere Server zum Leben zu erwecken, aber dies ist nicht die ausschließliche Verwendung, die wir diesem Modul geben können.
Die wahre Kraft von HTTP wird angezeigt, wenn wir Ihr Objekt verwenden, um die verschiedenen Anfragen zu bearbeiten oder Anfrage die aus unserer Bewerbung stammen können, damit können wir die Daten verarbeiten, die von POST durch Formulare oder Kundenanfragen SICH AUSRUHEN.
Tutorial-AnforderungenUm die in diesem Tutorial vorgeschlagenen Übungen ausführen zu können, benötigen wir eine funktionsfähige Installation von Node.js in unserem System und haben Zugriffsberechtigungen. Es ist auch wichtig, Zugriff auf einen Rich-Text-Editor zu haben, um die Beispiele zu codieren. Wir können alles verwenden, womit wir uns wohl fühlen, aber wegen seiner Benutzerfreundlichkeit empfehlen wir Erhabener Text oder Notizblock ++ die auch Add-ons für die Syntax haben JavaScript Ja HTML.
Datenverarbeitung POST ermöglicht es uns, Daten aus Formularen zu erfassen, damit können wir Daten verarbeiten, die aus Benutzerinteraktionen mit unseren Anwendungen stammen, wodurch wir eine Geschäftslogik zur Verarbeitung dieser Daten implementieren können.
Der direkteste Weg, um die Daten zu verarbeiten POST Es ist durch HTTP-Objekt, durch direkte Interaktion mit der Methode Server erstellen () Wir können entweder die Art der Methode der Anfrage identifizieren POST oder BEKOMMEN und sogar STELLEN Ja LÖSCHEN.
Wenn wir Beobachter sind, sehen wir, dass uns dies in gewisser Weise über unsere Anwendungen nachdenken lässt RUHIG, das heißt, wir können über verschiedene Clients mit ihm kommunizieren und nicht unbedingt über Formulare HTMLDies ist jedoch ein Thema, das über dieses Tutorial hinausgeht.
Als erstes erstellen wir ein kleines Formular, mit dem wir die Daten unserer Anwendung im Browser erfassen können. Dazu erstellen wir eine Datei namens form.html im Verzeichnis oder Ordner unserer Anwendung.
Letzteres wird in einer Produktionsumgebung nicht empfohlen, daher nehmen wir es nur als Referenz, um die Funktionsweise des Systems demonstrieren zu können. HTTP-Objekt. Der Code unseres Formulars sieht wie folgt aus:


Wie wir sehen, geben wir unserem Formular einfach an, dass es die Methode verwenden muss POST, wir haben ein paar Textfelder und schließlich eine Schaltfläche einreichen um unsere Daten an den Server zu senden.
Jetzt müssen wir den Server erstellen Node.js das wird uns helfen, die Daten aus dem Formular zu sammeln, hier müssen wir zwei Möglichkeiten berücksichtigen, die erste ist, wenn wir auf den Pfad unserer Anwendung zugreifen, dies erfolgt mit der Methode BEKOMMEN und hier sollten wir unsere Form zeigen.
Die zweite Möglichkeit ist, wenn die Formulardaten gesendet werden und dafür müssen wir die Methode validieren POST was das Ziel der Übung ist. Damit wir das Formular anzeigen können, müssen wir eine synchrone Komponente erstellen, die unsere Datei liest form.html und servieren es in der entsprechenden Route, dafür können wir uns auf die Methode verlassen readFileSync des Moduls fs.
Im nächsten Teil müssen wir dafür sorgen, dass unser Server die Daten verarbeiten kann POST, dafür zeigen wir einfach, was wir mit der Methode in der Konsole erhalten Konsole.log (), auf diese Weise können wir bestätigen, dass alles ordnungsgemäß funktioniert. Sehen wir uns den anfänglichen Code an, um das zu erreichen, was wir wollen:
 var http = erfordern ('http'); var querystring = erfordern ('querystring'); var util = erfordern ('util'); var form = erfordern ('fs'). readFileSync ('form.html'); http .createServer (function (request, response) {if (request.method === "POST") {var dataPost = ''; request.on ('data', function (chunk) {dataPost + = chunk;}). on ('end', function () {var dataPostObject = querystring.parse (dataPost); console.log ('Benutzer hat Daten gesendet: \ n', dataPost); response.end ('Sie haben Daten gesendet: \ n '+ util.inspect (dataPostObject));});} if (request.method === "GET") {response.writeHead (200, {' Content-Type ':' text / html '}); response. end ( form);}}) zuhören (8082);
Um alles so gut wie möglich lesbar zu machen, wurden die Module zusätzlich eingearbeitet Abfragezeichenfolge Ja Nützlich, mit ihnen können wir die Informationen, die vom Server kommen, verarbeiten und so manipulieren, um sie auszudrucken.
Sehen wir uns an, wie unser Formular zunächst aussehen sollte, wenn wir unsere Anwendung starten und den Browser im Stammpfad des Projekts öffnen:

VERGRÖSSERN

Wir geben nun einige Daten in die Textfelder ein, die wir in unserem Formular sehen, und klicken auf die Schaltfläche Senden. Dadurch wird uns ein Bildschirm mit den gesendeten Daten angezeigt und die Konsole wird an uns gedruckt. Anfrage einfach, d.h. wie es von unserer Anwendung erhalten wird:

Wir haben dann gesehen, dass es sehr einfach war, die Formulardaten zu verarbeiten, zumindest wieder anzuzeigen.
Obwohl das vorherige Beispiel korrekt funktioniert, weist es einige Schwächen auf, die uns, wenn die Anwendung in Produktion gehen würde, mehr Kopfschmerzen bereiten könnten die gesamte Struktur würde zusammenbrechen. Wenn wir Daten erhalten von POST leer, im aktuellen Zustand unserer Anwendung würde sie fehlschlagen und wir würden einen Fehler erhalten, der dazu führen würde, dass unser Dienst abstürzt und nicht mehr funktioniert.
Um diese Fehler zu beheben, müssen wir nur einige sehr einfache Validierungen einbeziehen. Zuerst werden wir eine Variable einbauen, die uns hilft, die empfangenen Daten auf ein Maximum zu begrenzen 2 MBDies kann uns ein wenig Sicherheit geben, dass es zumindest bei wenigen Benutzern nicht möglich ist, dass das System abstürzt. Dann werden wir das auswerten, damit unsere Anfrage POST bearbeitet werden auf HTTP-Objekt die es enthält, darf nicht leer sein, daher stellen wir sicher, dass es keine direkten Fehler auf unserem Server gibt. Schauen wir uns den obigen Code mit den entsprechenden Modifikationen an:
 var http = erfordern ('http'); var querystring = erfordern ('querystring'); var util = erfordern ('util'); var form = erfordern ('fs'). readFileSync ('form.html'); var maxDaten = 2 * 1024 * 1024; http.createServer (function (request, response) {if (request.method === "POST") {var dataPost = ''; request.on ('data', function (chunk) {dataPost + = chunk; if ( dataPost.length> maxData) {dataPost = ''; this.destroy (); response.writeHead (413); response.end ('Die eingegebenen Daten überschreiten unsere Kapazität');}}). on ('end', function () {if (! PostData) {response.end (); return;} var ObjectPostData = querystring.parse (PostData); console.log ('Der Benutzer hat die Daten gesendet: \ n', PostData); response.end ( 'Sie haben die Daten gesendet: \ n' + util.inspect (datosPostObjeto));});} if (request.method === "GET") {response.writeHead (200, {'Content-Type': ' text / html '}); response.end (form);}}) listen (8082);
Wenn wir Daten größer als 2 MB erhalten, schreiben wir einfach einen Header HTTP413 den Fall anzuzeigen und wir vernichten die erhaltenen Daten unverzüglich, um unseren Server nicht unnötig zu belasten.
Für den Fall, dass wir leere Daten von POST, setzen wir unsere Ausführung einfach fort, um zu verhindern, dass der Dienst unerwartet stirbt.
Eine weitere Verwendung, die wir der Methode geben können POST von HTTP ist, Dateien empfangen zu können, dafür müssen wir eine Ergänzung in unserem System installieren und es ist das beeindruckende Paket, um dieses Ziel in der Konsole zu erreichen Node.js Wir werden den folgenden Code ausführen:
 npm install [email protected]
Dies sollte wie folgt sein:

Im nächsten Akt werden wir unsere modifizieren form.html mit folgendem Code:


Im Grunde haben wir den Header des Formulars so geändert, dass unser Server weiß, dass er mehr als nur Text erhält, und wir haben auch die Textfelder in Dateien geändert. Schließlich werden wir unsere Datei ändern server.js und wir werden den folgenden Code platzieren:
 var http = require ('http'); var formidable = require ('formidable'); var form = require ('fs'). readFileSync ('form.html'); http.createServer (function (request, response) { if (request.method === "POST") {var Incoming = new formidable.IncomingForm (); Incoming.uploadDir = 'files'; Incoming.on ('file', function (field, file) {if (! file .size) {return;} response.write (file.name + 'received \ n');}) on ('end', function () {response.end ('Alle Dateien wurden empfangen');}); eingehend.parse (request);} if (request.method === "GET") {response.writeHead (200, {'Content-Type': 'text / html'}); response.end (form); } }) hören (8082);
Wir sehen, wie das Modul furchtbar derjenige ist, der uns beim Hochladen von Dateien hilft, werden sie in einem Ordner namens . gespeichert Aufzeichnungen, für die der Zielordner Schreibberechtigung haben muss Node.js.
Damit haben wir unser Tutorial abgeschlossen, da wir gesehen haben, dass wir mehrere Optionen haben, mit denen wir die Anfragen bearbeiten können POST das Objekt benutzen HTTP auf unserem Server Node.js, zusätzlich zu allen Vorteilen, die es zu unseren Entwicklungen hinzufügt.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave