2012-07-12 8 views
88

So habe ich viel über meteor.js gehört/gelesen. Die Tutorials lassen es als Rahmen sehr sportlich erscheinen, aber ich bin immer noch ein Anfänger, wenn es um Web-Programmierung geht.node.js vs. meteor.js Was ist der Unterschied?

Ich habe in den letzten anderthalb Monaten versucht, wirklich node.js zu lernen und herauszufinden, wie alles zusammenkommt. Ich mag es, wie schnell und einfach es zum Laufen kommt und die Gemeinschaft, die damit einhergeht (was durch die überwältigende Anzahl von Frameworks veranschaulicht wird, die man für Node erhalten kann).

Aber was ist mit Meteor? Was sind die wirklichen Vorteile davon und was ist der Unterschied? Hat jemand als node.js-Benutzer angefangen und 'konvertiert' oder ist es noch ein eher kurioses neues Framework?

Antwort

159

Eine lose Analogie ist, "Meteor ist zu Node wie Rails zu Ruby." Es ist ein großer, rechthaberischer Rahmen, der Node auf dem Server verwendet. Der Knoten selbst ist lediglich ein Low-Level-Framework, das Funktionen zum Senden und Empfangen von HTTP-Anforderungen und zum Ausführen anderer E/A bereitstellt.

Meteor ist radikal ehrgeizig: Standardmäßig ist jede Seite, die es bedient, eine Handlebars Vorlage, die mit dem Server synchronisiert wird. Probieren Sie Leaderboard example: Sie erstellen eine Vorlage, die einfach sagt "Liste die Namen und Punkte", und jedes Mal, wenn ein Client einen Namen oder ein Ergebnis ändert, aktualisiert die Seite mit den neuen Daten nicht nur für diesen Client, sondern für alle die Seite anzeigen .

Ein weiterer Unterschied: Während Node selbst stabil und in der Produktion weit verbreitet ist, befindet sich Meteor in einem "Vorschau" -Zustand. Es gibt ernsthafte Fehler, und bestimmte Dinge, die nicht zu Meteor's datenzentriertem konzeptionellen Modell (wie Animationen) passen, sind sehr schwer zu machen.

Wenn Sie gerne mit neuen Technologien spielen, geben Sie Meteor eine Drehung. Wenn Sie ein traditionelleres, stabileres Webframework auf Node erstellen möchten, werfen Sie einen Blick auf Express.

+2

Hat Meteor seit letztem Jahr seine "ernsten Bugs" 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, sich mit ihm zu entwickeln. –

+4

Beachten Sie auch, dass diese Antwort letztendlich nicht vollständig korrekt sein wird, da Meteor sich in der aktiven Entwicklung befindet und beträchtliche finanzielle Beiträge erhalten hat, die die Entwicklungszeit beschleunigen und hoffentlich aus der "Vorschau" herausholen. – Goddard

12

Meteor ist ein Framework, das auf node.js. Es verwendet node.js zum Bereitstellen, hat jedoch mehrere Unterschiede.

Der Schlüssel ist, dass es sein eigenes Verpackungssystem anstelle des modulbasierten Systems des Knotens verwendet. Es macht es einfach, Web-Anwendungen mit Knoten zu erstellen. Node kann für eine Vielzahl von Dingen verwendet werden und ist für sich selbst schrecklich, wenn er dynamische Webinhalte anbietet. Die Meteor-Bibliotheken machen das alles einfach.

+4

Version 0.6.0 hat jetzt direkte Unterstützung für NPM-Module http://meteor.com/blog/2013/04/ 04/meteor-060-brand-new-vertriebssystem-app-packages-npm-integration –

9

Die Stärke von Meteor liegt in der Echtzeit-Aktualisierung, die sich gut für einige der sozialen Anwendungen eignet, die Sie heutzutage sehen. Hier sehen Sie alle Updates für das, woran Sie gerade arbeiten. Diese Updates konzentrieren sich auf das Replizieren von Teilmengen einer MongoDB-Sammlung unterhalb der Abdeckungen, während lokale Mini-Mongo-Datenbank-Updates (MongoDB-Teilmenge) in Ihrem Webbrowser aktualisiert werden (wodurch mehrere Render-Ereignisse auf Ihre Vorlagen ausgelöst werden). Der letzte Teil über mehrere Render-Updates ist auch die Schwäche. Wenn Sie möchten, dass Ihre Benutzeroberfläche die Aktualisierung der Benutzeroberfläche steuert (z. B. klassische jQuery-AJAX-Seiten, auf denen Sie den HTML-Code laden und alle AJAX-Aufrufe und UI-Aktualisierungen steuern), kämpfen Sie gegen diesen Mechanismus.

Meteor verwendet einen schönen Stapel von Node.js Plugins (Handlebars.js, Spark.js, Bootstrap css, etc., aber mit eigenem Verpackungsmechanismus anstelle von npm) unterhalb von MongoDB für die Speicherschicht, die Sie nicht verwenden Ich muss darüber nachdenken. Aber manchmal kämpft man auch damit ... zB wenn man das Bootstrap-Theme anpassen will, wird die Ladesequenz von Bootstraps responsive.css-Datei durcheinander gebracht, so dass es nicht mehr reagiert (aber das wird sich wahrscheinlich beim Bootstrap beheben) 3.0 wird bald veröffentlicht).

So wie alle "Full-Stack-Frameworks" funktionieren die Dinge großartig, solange Ihre App zu dem passt, was beabsichtigt ist.Sobald Sie über diesen Bereich hinausgehen und die Kantengrenzen überschreiten, können Sie am Ende mit dem Framework kämpfen ...

+2

Meteor V0.6.0 + hat npm Integration: http://www.meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration –

Verwandte Themen