Ich habe bemerkt, dass Node.js sehr populär geworden ist, und ich habe mehrere Instanzen von Leuten gesehen, die kleine Projekte darin durchgeführt haben.
Ich habe mir auch die Vor- und Nachteile von Node.js angeschaut, um eine Vorstellung davon zu bekommen, was Node.js kann, aber ich bin mir immer noch nicht sicher, inwiefern es sich von anderen ausgereiften serverseitigen Technologien wie PHP, Perl oder Ruby unterscheidet Schienen.
Was unterscheidet Node.js konkret von den aktuellen Alternativen und warum?
web-development
comparison
node.js
Saeed Neamati
quelle
quelle
Antworten:
Es gibt zwei wichtige Dinge, die Node.js von bestehenden serverseitigen Frameworks, asynchronen Ereignissen und der Verwendung von JavaScript als Programmiersprache unterscheiden.
Asynchrone Ereignisse
Während die meisten vorhandenen serverseitigen Frameworks eine synchrone Architektur verwenden, verwendet Node.js eine asynchrone Architektur, mit der JavaScript gut umgehen kann. Dies bedeutet, dass der Server auf Ereignisse reagiert und Ereignisse (Nachrichten) zB an die Datenbank sendet. Dieser Programmierstil unterscheidet sich stark von einem synchronen Stil und kann mit anderen Sprachen nur schwer verwendet werden. Node.js verwendet einen asynchronen Stil mit asynchronem E / A und kann gut skaliert werden.
Siehe auch Event Driven Architecture
JavaScript
JavaScript ist die Programmiersprache, die Webanwendungen auf dem Client verwenden. Die Verwendung derselben Sprache auf der Serverseite bedeutet, dass der Entwickler seine JavaScript-Kenntnisse sowohl auf dem Client als auch auf dem Server anwenden und die gleichen Funktionen wie erforderlich verwenden kann.
Ich würde die Präsentation Introduction to Node.js mit Ryan Dahl empfehlen, in der er Node.js ereignisgesteuerte Architektur ausführlicher erklärt.
quelle
async
Sachen herumrollt, kann sich das ändern. Das Problem ist nicht, dass Sie keinen skalierbaren asynchronen Code in anderen Sprachen schreiben können , sondern dass es schwieriger ist, (korrekt) ohne gute Sprachniveauunterstützung zu arbeiten.Es ist anders, weil es ereignisgesteuert ist . Dies macht den Server hoch skalierbar.
In einer Nussschale;
Thread-Modell
Ereignismodell
quelle
Session_Started
oderContext_Authenticated
oder sehenPage_Load
?Ich hatte den Eindruck, dass die Popularität auf die Verwendung von JavaScript zurückzuführen ist. Da viele Webentwickler JavaScript kennen, ist es ein Verkaufsargument, dass sie jetzt serverseitigen Code in derselben Sprache entwickeln können. Dies hat einige Vorteile, die ich mir vorstellen kann:
quelle