Wie ich deinen Schmerz fühle!
Wie viele andere fiel es mir schwer, zum Kern von Node.js zu gelangen, da die meisten Leute nur über den Teil von Node schreiben / sprechen, den sie nützlich finden - und der Teil, den sie interessant finden, ist normalerweise eher ein sekundärer Vorteil von Node als dessen primärer Zweck. Ich muss sagen, dass ich es für verrückt halte, wenn Leute sagen, dass Node nur eine JavaScript-Laufzeit ist. Die Verwendung von JavaScript durch Node - und die Auswahl der V8-Laufzeit - sind einfach Mittel zum Zweck , die besten Tools für das Problem, das die Entwickler von Node lösen wollten.
Der Hauptzweck von Node bestand darin, die Verwaltung von Benutzerereignissen in einer Web-App effizienter zu gestalten. Node ist also überwältigendwird am Backend einer Web-App verwendet. Die Ereignisverwaltung erfordert, dass auf dem Server etwas auf diese Ereignisse wartet. Daher muss ein http-Server eingerichtet werden, um jedes Ereignis an das entsprechende Handler-Skript weiterzuleiten. Der Knoten verwendet JavaScript für die Ereignisbehandlung, da JavaScript über Rückruffunktionen verfügt: Dadurch kann eine Aufgabe angehalten werden, bis das Ergebnis einer abhängigen Aufgabe zurückgegeben wird. Nicht viele andere Sprachen verfügen über diese Funktion, und diejenigen, die dies tun, verfügen möglicherweise nicht über einen so effizienten Interpreter wie die V8-Laufzeit von Google. Die meisten Webentwickler kennen JavaScript, sodass mit Node kein zusätzliches Sprachenlernen möglich ist. Darüber hinaus können mit Rückruffunktionen alle Benutzeraufgaben in einem einzigen Thread zusammengefasst werden, ohne dass Aufgaben, die den Zugriff auf die Datenbank oder das Dateisystem erfordern, explizit blockiert werden.
Um Node-Benutzern das schnelle Schreiben von Back-End-Code zu erleichtern, haben die Entwickler von Node auch das NPM-Repository (Node Package Manager) organisiert: Dies ist ein benutzerfreundlicher Open-Source-Satz von Skriptpaketen für verschiedene Standard- und benutzerdefinierte Funktionen. Alle Node-Projekte ermöglichen den Import von NPM-Paketen in ein Projekt über den festgelegten Befehl npm install .
Benutzeranforderungen, die über den Knoten verarbeitet werden, sind beispielsweise die Validierung von Registern / Anmelden / Abmelden / Formularfeldern, und verschiedene Datenbankabfragen, die von der Web-App benötigt werden, werden an den Knotenport gesendet. Andere Arten von Benutzeranfragen, z. B. zum Anzeigen einer anderen Webseite, zum Herunterladen von CSS / JS / Bildern usw., können ebenfalls an Node gesendet werden. Diese werden jedoch normalerweise nicht an den Knotenport gesendet, sondern vom Browser weiterhin an die Standardports auf dem Server, auf denen der Webserver sie verarbeitet.
Also, in der Praxis , Knoten ist normalerweise ein Server , sondern eine , die nur ersetzt einige der Funktionen des Web - Server - Programms. Andere Anwendungen von Node nutzen einfach die eine oder andere seiner Funktionen, z. B. die V8-Engine. Aber dies sind wirklich nur Nebenproduktverwendungen von Node.