node.js vs. meteor.js Was ist der Unterschied? [geschlossen]

88

Ich habe also viel über meteor.js gehört / gelesen. Die Tutorials lassen es als Framework sehr sportlich erscheinen, aber ich bin immer noch ein Anfänger, wenn es um Webprogrammierung geht.

Ich habe in den letzten anderthalb Monaten versucht, node.js wirklich zu lernen und herauszufinden, wie alles zusammenkommt. Ich mag die schnelle und einfache Inbetriebnahme und die damit verbundene Community (was sich in der überwältigenden Anzahl von Frameworks zeigt, die Sie für Node erhalten können).

Aber was ist mit Meteor? Was sind die wirklichen Vorteile und was ist der Unterschied? Hat jemand als Benutzer von node.js angefangen und "konvertiert" oder ist es immer noch eher ein merkwürdiges neues Framework?

ZacAttack
quelle

Antworten:

159

Eine lose Analogie lautet: "Meteor ist für Node wie Rails für Ruby." Es ist ein großes Framework mit einer Meinung, das Node auf dem Server verwendet. Der Knoten selbst ist nur ein Low-Level-Framework, das Funktionen zum Senden und Empfangen von HTTP-Anforderungen und zum Ausführen anderer E / A bietet.

Meteor ist radikal ehrgeizig: Standardmäßig ist jede Seite, die es bedient, eine Lenkervorlage , die mit dem Server synchronisiert wird. Probieren Sie das Leaderboard-Beispiel aus : Sie erstellen eine Vorlage mit der Aufschrift "Listen Sie die Namen und Ergebnisse auf". Jedes Mal, wenn ein Kunde einen Namen oder eine Bewertung ändert, wird die Seite mit den neuen Daten aktualisiert - nicht nur für diesen Kunden, sondern für alle, die das anzeigen Seite.

Ein weiterer Unterschied: Während Node selbst stabil ist und in der Produktion weit verbreitet ist, befindet sich Meteor in einem "Vorschau" -Zustand. Es gibt schwerwiegende Fehler, und bestimmte Dinge, die nicht zum datenzentrierten konzeptionellen Modell von Meteor passen (z. B. Animationen), sind sehr schwer zu tun.

Wenn Sie gerne mit neuen Technologien spielen, probieren Sie Meteor aus. Wenn Sie ein traditionelleres, stabileres Webframework auf Node-Basis wünschen, schauen Sie sich Express an .

Trevor Burnham
quelle
2
Hat Meteor seine "schwerwiegenden Fehler" seit letztem Jahr verbessert?
Danorton
3
@danorton Ja, das würde ich definitiv sagen. Für bestimmte Anwendungen ist Meteor jetzt durchaus brauchbar und es ist ein absolutes Vergnügen, mit ihm zu entwickeln.
Trevor Burnham
4
Beachten Sie auch, dass diese Antwort möglicherweise nicht ganz korrekt sein wird, da sich Meteor in der aktiven Entwicklung befindet und beträchtliche finanzielle Beiträge erhalten hat, die die Entwicklungszeit beschleunigen und sie hoffentlich aus der "Vorschau" -Stufe herausholen.
Goddard
12

Meteor ist ein Framework, das auf node.js basiert. Für die Bereitstellung wird node.js verwendet, es gibt jedoch mehrere Unterschiede.

Der Schlüssel ist, dass es ein eigenes Verpackungssystem anstelle des modulbasierten Systems des Knotens verwendet. Es macht es einfach, Webanwendungen mit Node zu erstellen. Der Knoten kann für eine Vielzahl von Dingen verwendet werden und ist für sich genommen schrecklich, wenn es darum geht, dynamische Webinhalte bereitzustellen. Meteors Bibliotheken machen das alles einfach.

Akshat
quelle
4
Version 0.6.0 hat jetzt direkte Unterstützung für NPM-Module meteor.com/blog/2013/04/04/…
Max Hodges
9

Die Stärke von Meteor liegt in der Echtzeit-Update-Funktion, die für einige der sozialen Anwendungen, die Sie heutzutage sehen, gut funktioniert. Dort sehen Sie alle Updates für das, woran Sie gerade arbeiten. Bei diesen Updates geht es darum, Teilmengen einer MongoDB-Sammlung unter der Decke als lokale Mini-Mongo-Datenbankaktualisierungen (ihre clientseitige MongoDB-Teilmenge) in Ihrem Webbrowser zu replizieren (wodurch mehrere Renderereignisse auf Ihren Vorlagen ausgelöst werden). Der letzte Teil über mehrere Render-Updates ist auch die Schwäche. Wenn Sie möchten, dass Ihre Benutzeroberfläche steuert, wann die Benutzeroberfläche aktualisiert wird (z. B. klassische jQuery AJAX-Seiten, auf denen Sie den HTML-Code laden und alle AJAX-Aufrufe und Benutzeroberflächenaktualisierungen steuern), bekämpfen Sie diesen Mechanismus.

Meteor verwendet einen schönen Stapel von Node.js-Plugins (Handlebars.js, Spark.js, Bootstrap-CSS usw., verwendet jedoch einen eigenen Verpackungsmechanismus anstelle von npm) unter w / MongoDB für die Speicherebene, die Sie nicht benötigen nachdenken über. Aber manchmal kämpfen Sie auch dagegen ... Wenn Sie beispielsweise das Bootstrap-Design anpassen möchten, wird die Ladesequenz der Datei responsive.css von Bootstrap durcheinander gebracht, sodass sie nicht mehr reagiert (dies wird sich jedoch wahrscheinlich beim Bootstrap selbst beheben 3.0 wird bald veröffentlicht).

Wie bei allen "Full-Stack-Frameworks" funktionieren die Dinge also hervorragend, solange Ihre App den Anforderungen entspricht. Wenn Sie diesen Rahmen überschreiten und die Randgrenzen überschreiten, werden Sie möglicherweise gegen das Framework kämpfen ...

Kenyee
quelle
2
Meteor V0.6.0 + hat npm Integration: meteor.com/blog/2013/04/04/…
Manav Kataria