node.js vs meteor.js quelle est la différence? [fermé]

88

J'ai donc beaucoup entendu / lu sur meteor.js. Les tutoriels le font paraître très sportif en tant que framework, mais je suis encore un peu novice en matière de programmation Web.

J'ai essayé au cours du dernier mois et demi de vraiment apprendre node.js et de comprendre comment tout cela s'organise. J'aime la rapidité et la facilité de mise en route, et la communauté qui l'accompagne (ce qui est illustré par le nombre hallucinant de frameworks que vous pouvez obtenir pour Node).

Mais qu'en est-il du météore? Quels en sont les avantages réels et quelle est la différence? Quelqu'un a-t-il commencé en tant qu'utilisateur node.js et «converti» ou s'agit-il encore d'un nouveau framework curieux?

ZacAttack
la source

Réponses:

159

Une analogie vague est, "Meteor est à Node comme Rails est à Ruby." C'est un vaste cadre d'opinion qui utilise Node sur le serveur. Node lui-même n'est qu'un framework de bas niveau fournissant des fonctions pour envoyer et recevoir des requêtes HTTP et effectuer d'autres E / S.

Meteor est radicalement ambitieux: par défaut, chaque page qu'il sert est en fait un modèle Handlebars qui est synchronisé avec le serveur. Essayez l' exemple du classement : vous créez un modèle qui dit simplement "Lister les noms et les scores", et chaque fois qu'un client change de nom ou de score, la page est mise à jour avec les nouvelles données, pas seulement pour ce client, mais pour tous ceux qui consultent le page.

Autre différence: alors que Node lui-même est stable et largement utilisé en production, Meteor est dans un état "aperçu". Il y a de sérieux bugs et certaines choses qui ne correspondent pas au modèle conceptuel centré sur les données de Meteor (comme les animations) sont très difficiles à faire.

Si vous aimez jouer avec les nouvelles technologies, essayez Meteor. Si vous voulez un framework Web plus traditionnel et stable basé sur Node, jetez un œil à Express .

Trevor Burnham
la source
2
Meteor a-t-il amélioré ses «bugs sérieux» depuis l'année dernière?
danorton le
3
@danorton Oui, je le dirais certainement. Pour certaines applications, Meteor est désormais tout à fait viable, ainsi qu'un plaisir absolu à développer avec.
Trevor Burnham le
4
Notez également que cette réponse ne sera finalement pas tout à fait exacte car Meteor est en développement actif et a obtenu des contributions financières considérables qui accélèrent le temps de développement, espérons-le, le faisant sortir de sa phase de «prévisualisation».
Goddard
12

Meteor est un framework construit sur node.js. Il utilise node.js pour déployer mais présente plusieurs différences.

La clé étant qu'il utilise son propre système d'emballage au lieu du système basé sur le module du nœud. Cela facilite la création d'applications Web à l'aide de Node. Node peut être utilisé pour une variété de choses et à lui seul, il est mauvais pour la diffusion de contenu Web dynamique. Les bibliothèques de Meteor facilitent tout cela.

Akshat
la source
4
la version 0.6.0 prend désormais directement en charge les modules NPM meteor.com/blog/2013/04/04/…
Max Hodges
9

La force de Meteor réside dans sa fonctionnalité de mises à jour en temps réel qui fonctionne bien pour certaines des applications sociales que vous voyez de nos jours où vous voyez les mises à jour de tout le monde pour ce sur quoi vous travaillez. Ces mises à jour sont centrées sur la réplication de sous-ensembles d'une collection MongoDB sous les couvertures en tant que mises à jour de base de données de mini-mongo locales (leur sous-ensemble MongoDB côté client) sur votre navigateur Web (ce qui provoque le déclenchement de plusieurs événements de rendu sur vos modèles). La dernière partie concernant les mises à jour de rendu multiples est également la faiblesse. Si vous voulez que votre interface utilisateur contrôle le moment où l'interface utilisateur s'actualise (par exemple, les pages jQuery AJAX classiques où vous chargez le HTML et vous contrôlez tous les appels AJAX et les mises à jour de l'interface utilisateur), vous combattrez ce mécanisme.

Meteor utilise une belle pile de plugins Node.js (Handlebars.js, Spark.js, Bootstrap css, etc. mais en utilisant son propre mécanisme de packaging au lieu de npm) en dessous avec MongoDB pour la couche de stockage que vous n'avez pas à Penser à. Mais parfois, vous finissez par le combattre aussi ... par exemple, si vous souhaitez personnaliser le thème Bootstrap, cela gâche la séquence de chargement du fichier responsive.css de Bootstrap afin qu'il ne soit plus réactif (mais cela se corrigera probablement lorsque Bootstrap 3.0 est bientôt disponible).

Ainsi, comme tous les «frameworks full stack», les choses fonctionnent très bien tant que votre application correspond à ce qui est prévu. Une fois que vous dépassez cette portée et repoussez les limites, vous pourriez finir par vous battre contre le cadre ...

Kenyee
la source
2
Meteor V0.6.0 + a une intégration npm: meteor.com/blog/2013/04/04/…
Manav Kataria