Verwendung von Node.js - Für welche Hindernisse ist eine Rampe vorgesehen?

7

Ich versuche herauszufinden, wo Node passt. Es ist eine Nische, sozusagen ... Auf welche Hindernisse zielt Node, um eine Rampe zu bieten?

Ich habe die Beispiele gelesen und ein paar Demonstrationsvideos gesehen. Und alles sieht sehr glatt aus ... Erstellen eines einfachen Webservers; Erstellen eines einfachen TCP / IP-Chatservers; Verwenden von Node als JSON-basierte Front für einen Datenbankserver ... Aber wo passt es? Ich meine, bis auf das letzte Beispiel, was ist mit Node zu tun?

Ich denke, was ich frage ist das: Wofür würdest du Node benutzen? Und warum?

    
roosteronacid 31.03.2011, 21:43
quelle

6 Antworten

14

Überzeuge den Boss

Liste der Gründe für die Verwendung des Knotens:

  • Geschwindigkeit. V8 ist schnell. Es ist schneller als Python, es ist schneller als PHP.
  • Gleichmäßige IO. IO richtig gemacht. Kein Problem mit Threads, alles funktioniert gut und einfach.
  • Webserver auf niedriger Ebene. Eine gute Kontrolle über die Abstraktion in einer dynamischen Sprache.
  • JavaScript. Eine großartige Sprache mit vielen Entwicklern, die asynchronen Code schreiben. Die Entwicklung ist schnell und die Wartung ist sehr angenehm, da alles in einer Sprache erledigt werden kann (clientseitig, serverseitig, Datenbankzugriff).

Bibliotheken und Werkzeuge, die mit node.js verwendet werden können:

  • express.js : MVC-Web-Framework. Sehr leicht. Bietet Ihnen Routing und Ansichten. Erstellt ontop von connect.js. Flexible Kontrolle von Ansichten und Routen mit mehreren CSS- und Templating-Engines Wie bei node.js selbst ist es simpel und ermöglicht Ihnen eine feinkörnige Kontrolle Ihres Webservers. Persönlich finde ich das Gleichgewicht zwischen Kontrolle und Abstraktion über richtig.
  • socket.io : Die De-facto-Websocket-Abstraktion. Es gibt eine Menge von gradeful Degradation Unterstützung eingebaut, so dass Browser ohne WebSetet Kometen-Techniken oder eine Flash-Bridge verwenden. Ermöglicht Ihnen eine unkomplizierte, einfache und zeitnahe Kommunikation zwischen Client und Server.
  • now.js : Erstellt über socket.io und gibt Ihnen einen synchronisierten Namespace für Client und Server. Ermöglicht es Ihnen, Servermethoden vom Client aus oder umgekehrt aufzurufen.

Alle diese Bibliotheken basieren auf der Tatsache, dass node.js Ihnen ermöglicht, alles auf einer niedrigen Ebene zu handhaben, und dass die Kommunikation mit dem Client glatt und rationalisiert ist, weil Sie die gleiche Sprache an beiden Enden verwenden.

Der Verkaufsvorteil für mich ist, dass ich die gleiche MVC-Bibliothek backbone.js auf dem Client und dem Server habe. All mein Modellcode wird wiederverwendet. Die Modelle auf dem Client und dem Server werden trivial über now.js synchronisiert.

Mein Datenbankzugriff wird von Wiege (oder Mungo) gesteuert ), das alles in JavaScript geschrieben ist. Tatsächlich bindet mein MVC direkt in die Datenbank und speichert nahtlos meine Modelle. Die Modelle definieren nützliche Methoden wie save und fetch , um dauerhaften Datenbankspeicher zu erstellen. Ich berühre die Datenbank nicht manuell, weil mein MVC mir erlaubt, einen Datenbanktreiber anzuschließen, um dies für mich zu tun.

Das Rendern meiner Vorlagen erfolgt mit EJS . Meine Ansichten werden zwischen dem Client und dem Server geteilt. Es gibt einfach eine große Menge an Code-Wiederverwendung und meine gesamte Web-Entwicklung wird in JavaScript durchgeführt, was bedeutet, dass ich mein Codierungs-Paradigma oder meinen Stil nicht wechseln muss.

Ich habe auch keine Probleme zu entscheiden, wie ich mit der Grauzone zwischen dem, was auf dem Server lebt, und dem, was auf dem Client lebt, umgehen kann, da dieser graue Bereich vollständig geglättet wurde und der Client und der Server nahtlos integriert sind.

Wenn Sie eine komplexe dynamische ajax-Webanwendung schreiben möchten, ist node.js ein perfekter Kandidat. Wenn Sie eine statische Website haben, dann ist node.js ein perfekter Kandidat (Sie haben es in 20 Minuten eingerichtet).

Wenn Sie eine serverschwere Website mit wenig clientseitigen Funktionen und Postbacks schreiben, dann sollten Sie besser PHP oder ASP.NET verwenden. Aber wenn Sie das tun, sollten Sie in mehr dynamische clientseitige Funktionalität und mit ajax suchen.

    
Raynos 31.03.2011, 21:52
quelle
3

Ich glaube, dass eine der von Node.js proklamierten Stärken darin besteht, dass es als websockets -Server geeignet ist. Verbindungen in Node.js sind billig (weil es nur sehr wenig Framework gibt) und daher kann ein einzelnes System viele persistente Verbindungen unterstützen.

    
Mark 31.03.2011 21:54
quelle
3
Der

-Wohlknoten ist im Allgemeinen zum Aufrechterhalten einer großen Anzahl offener Verbindungen (zu anderen Knoten, Diensten usw.) geeignet.

Dies sollte Ihnen einen Einblick in seine Leistung im Vergleich zu anderen geben (+ eine Diskussion als Bonus): Skalierungsstapel vs node.js vs Twisted vs Eventlet

Node passt auch gut als Shell / Terminal-Skriptsprache, gutes Beispiel ist dies: github.com/indexzero/forever

Und als javascript @ serverseitige Lösung - verkleinert die Lücke zwischen dem Erstellen von Frontend (html / js) & amp; Backend (in aktuellen Fall nodejs) Lösungen.

Sie können das auch nützlich finden: Liste der Projekte, Anwendungen und Unternehmen mit Nodejs

>     
outbounder 31.03.2011 22:01
quelle
2

Sie können viele node.js-Anwendungsfälle erhalten, wenn Sie sich beispielsweise die Module -Seite ansehen. Es variiert von einer Unmenge von Bibliotheken wie Routern, statischen Dateiservern, Web-Frameworks und WebSockets-Servern bis hin zu DB-spezifischen Konnektivitätsmodulen, Standalone-Datenbanken, TCP / IP-Servern und gängigen Protokoll- / Bibliothekswrappern, die darauf warten, andere Wahnsinns zu erzeugen wie diese Unternehmen taten.

Ich würde sagen, dass Sie node.js für den Fall verwenden möchten, wenn Sie das leichte, niedrige und schnelle serverseitige Framework nutzen möchten, das evented IO verwendet und reichhaltige Mengen von Open-Source-Community-basierten Bibliotheken bietet (sollten Sie oder vielmehr JavaScript auf einer bestimmten Ebene kennen müssen, um andere Module zu erstellen oder als Grundlage für ein eigenständiges Projekt zu verwenden (oder als Ergänzung für eine bestimmte Funktionalität, die node.js besser als andere Lösungen ausführen kann).

    
yojimbo87 31.03.2011 22:30
quelle
1

Es ist eine gute Frage! Wie Sie gesagt haben, ist die Kodierung mit Node schnell und einfach. Es ist nicht das einzige schnelle und einfache Tool, aber was macht es einzigartig? Ich freue mich auf die anderen Antworten!

Mein Beitrag: Einer der Vorteile von Node ist, dass Sie sowohl Ihren clientseitigen als auch Ihren serverseitigen Code in JavaScript schreiben können. Dadurch erhalten Sie einen Spielraum für die Wiederverwendbarkeit von Code, den Sie sonst nicht hätten.

    
slezica 31.03.2011 21:46
quelle
1

Im Moment benutze ich eine großartige isometrische Spielengine, die in node.js geschrieben wurde Netzwerk erstellte Pfade, Ansichtsfenster, Kameras, Karten .. Wenn Sie ein MMO für Millionen von Personen erstellen möchten, dann kann node.js eine Option sein.

    
Ron 23.05.2011 00:50
quelle

Tags und Links