Veränderungen im Umfeld haben zu großen Technologiesprüngen geführt, die gleichzeitig Chancen und Herausforderungen mit sich bringen. Da ich js noch nicht gelernt habe, blieb mir nichts anderes übrig, als es ins Regal zu stellen und es gemeinsam zu lernen. (>﹏<)
1. Lesen und lesen Sie zuerst
Von Anfang an habe ich „Einführung in Node.js in einer einfachen und tiefen Sprache“ ohne zu zögern gelesen und war verwirrt. Nachdem ich es gelesen hatte, wurde mir klar, dass dieses Buch ein gewisses Grundniveau erfordert. Ich habe im Internet gesucht und die 41-seitige „Einführung in Node“ gefunden und gelernt, wie man eine Webanwendung erstellt. Und nachdem ich mein Erfolgserlebnis aufgefrischt hatte, las ich „The Amazing Node.js“. Nachdem ich dieses Buch gelesen habe, werde ich nun „Ausführliche Einführung in node.js“ lesen.
2. Richten Sie die Umgebung ein und führen Sie die Routine auf Git aus (Fehler wurde dreimal gemeldet)
Nachdem Sie die MSI von der offiziellen Website heruntergeladen haben, fahren Sie mit dem nächsten Schritt fort. Bei der Eingabe des Befehls npm install wird der Fehler „npm ERR! not found: git“ gemeldet. Der Grund ist, dass der neue Computer Git nicht folgt.
Bei der Installation externer Abhängigkeitspakete wird der Fehler „gyp ERR! configure error“ gemeldet. Der Grund dafür ist, dass die Python-Umgebung nicht vorhanden ist. Und dieses Abhängigkeitspaket kann nur unter niedrigeren Versionen installiert werden. Der letzte gemeldete Fehler war „MSBUILD: Fehler MSB3428: Die Visual C-Komponente „VCBuild.exe“ konnte nicht geladen werden.“ Der Fehler wurde auch nach der Installation von .net Framework 2.0 SDK und mvs2005 gemeldet. Habe entschieden aufgegeben.
3. Die erste Webanwendung
Nachdem Sie „Hello World“ ausgeführt haben, beginnen Sie mit dem Schreiben einer Webanwendung, die vollständig auf Node basiert. Zuerst müssen Sie das Servermodul starten. Das von der Funktion createServer im http-Modul zurückgegebene Objekt verfügt über eine listen([PORT])-Methode zum Abhören des Ports. Die Parameter dieser Funktion sind sehr seltsam, es handelt sich um eine Funktionsdefinition. In JavaScript kann eine Funktion einen Parameter als eine andere Funktion empfangen. Die Parameterfunktion wird als anonyme Funktion bezeichnet. Der Grund für die Verwendung dieser Methode besteht darin, dass der Knoten ereignisgesteuerte Rückrufe verwendet. Wenn der Server in einem einzelnen Prozess eine Anfrage empfängt, ruft er diese Funktion auf, um die Anfrage zu bearbeiten. Wenn ein entsprechendes Ereignis auftritt, ruft die Funktion createServer diese Funktion zum Rückruf auf.
Nachdem wir die http-Anfrage vollständig erhalten haben, werden wir die Anfrage bearbeiten. Zunächst schlagen wir abstrakt verschiedene URLs sowie GET- und POST-Parameter vor. Hier werden zwei interne Module URL (Parsing-URL) und Query String (Verarbeitungs-Query-String) verwendet. Und fügen Sie das Router-Modul durch Abhängigkeitsinjektion hinzu. Als nächstes muss das Modul zur Verarbeitung von Anfragen abgeschlossen werden, um das Routing abzuschließen. Alle Anfragen werden zunächst über ein Objekt (Handle) zwischen Modulen weitergeleitet, und der Handler kann antworten. Lassen Sie im Allgemeinen den Anforderungshandler die Informationen, die er dem Benutzer anzeigen möchte, direkt über die Funktion onRequest zurückgeben (return ()). Da die Durchführung von Blockierungsvorgängen jedoch sehr zeitaufwändig ist, müssen wir nicht blockierende Vorgänge verwenden. Verwenden Sie Rückrufe, indem Sie Funktionen als Argumente an andere Funktionen übergeben, deren Verarbeitung Zeit benötigt. Anstatt den Inhalt an den Server weiterzuleiten, „leiten“ wir dieses Mal den Inhalt vom Server weiter. Das heißt, das Antwortobjekt (erhalten von der Rückruffunktion onRequest() des Servers) als Funktionsparameter durch Routing an den Handler zu übergeben. Auf diese Weise kann der Handler Funktionen für das Objekt aufrufen.
Fahren Sie dann mit dem Verarbeitungsschritt fort und laden Sie das Bild über das Formular hoch. Hier wird das externe Abhängigkeitspaket formidable verwendet, um das Bild zu empfangen. Dieses Modul dient der Bearbeitung von Formularen und dem Hochladen von Dateien. Verwenden Sie zunächst var form = new formidable.IncomingForm(); um ein Formularobjekt zu erhalten. Die Parse-Methode dieses Objekts kann Formulardaten analysieren und verarbeiten. Wir speichern die Datei einfach. Das fs-Modul wird zum Speichern von Dateien verwendet. Geben Sie den Speicherort über die Umbenennungsmethode an und verwenden Sie die Synchronisierungsmethode renameSync (), damit das Dateispeicherverhalten dem Bildanzeigeverhalten vorangeht.
Das Anzeigen von Bildern ist sehr einfach. Lesen Sie die Datei über die readFile-Methode von fs und verwenden Sie „response.write(file, „binary“)“ in der Rückruffunktion, um das Bild im Browser anzuzeigen.
Um es zusammenzufassen: Durch diese Routine haben wir etwas über die Funktionen in node.js gelernt, wie Single-Threaded, asynchron, ereignisgesteuert usw. Einige dieser abstrakten Konzepte werden auch durch Routinen demonstriert, müssen jedoch eingehend verstanden werden. Lernen durch Routinen bedeutet, dass Sie Informationen nachschlagen müssen, wenn Sie sie nicht verstehen. Diese Lernmethode ist auch eine gute Input-Person-Output-Methode.