web-dev-qa-db-fra.com

meteor.js et node.js, quelle est la différence?

Donc, j'ai beaucoup entendu/lu à propos de meteor.js. Les tutoriels le rendent très sportif en tant que framework, mais je suis toujours un peu novice en matière de programmation Web.

Depuis un mois et demi, j'essaie vraiment d'apprendre à node.js et de comprendre comment tout cela se passe. J'aime la rapidité et la facilité de mise en route, ainsi que la communauté qui l'accompagne (ce qui est illustré par le nombre impressionnant de cadres que vous pouvez obtenir pour Node).

Mais qu'en est-il de 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?

88
ZacAttack

Une analogie lâche est, "Meteor is to Node as Rails est à Ruby)". C’est un grand cadre d'opinion qui utilise Node sur le serveur. Node n’est en soi qu’un framework de bas niveau fournissant des fonctions pour l’envoi et la réception de requêtes HTTP et la réalisation d’autres E/S.

Meteor est radicalement ambitieux: par défaut, chaque page qu’elle sert est en réalité un modèle guidon synchronisé avec le serveur. Essayez le exemple de classement : Vous créez un modèle qui se limite à "Lister les noms et les scores" et chaque fois qu'un client modifie un nom ou un score, la page est mise à jour avec les nouvelles données, pas seulement pour cela. client, mais pour tous ceux qui consultent la page.

Autre différence: alors que Node est stable et largement utilisé en production, Meteor est dans un état "de prévisualisation". Il existe des bogues sérieux et certaines choses qui ne cadrent pas avec les données de Meteor. modèle conceptuel (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 construit sur Node, jetez un œil à Express .

159
Trevor Burnham

Meteor est une structure construite sur le noeud node.js. Il utilise node.js pour se déployer mais présente plusieurs différences.

La clé étant qu'il utilise son propre système de packaging au lieu du système basé sur un module de noeud. Cela facilite la création d'applications Web à l'aide de Node. Node peut être utilisé pour une variété de choses et ne suffit pas à lui seul à fournir du contenu Web dynamique. Les bibliothèques de Meteor facilitent tout cela.

12
Akshat

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 actuellement, où vous voyez les mises à jour de chacun 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 bases de données mini-mongo locales (leur sous-ensemble MongoDB côté client) sur votre navigateur Web (ce qui entraîne le déclenchement de plusieurs événements de rendu sur vos modèles). La dernière partie concernant plusieurs mises à jour de rendu est également la faiblesse. Si vous souhaitez que votre interface contrôle le moment de l'actualisation (par exemple, jQuery classique AJAX pages où vous chargez le code HTML et contrôlez tous les appels AJAX et Mises à jour de l'interface utilisateur), vous allez combattre ce mécanisme.

Meteor utilise une belle pile de plug-ins Node.js (Handlebars.js, Spark.js, Bootstrap css, etc.), mais en utilisant son propre mécanisme d’emballage au lieu de npm) sous w/MongoDB pour le couche de stockage à laquelle vous n’avez pas à penser, mais vous finissez parfois par vous battre 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 pour tous les "frameworks full stack", les choses fonctionnent parfaitement tant que votre application correspond à ce que vous souhaitez. Une fois que vous avez dépassé ce cadre et que vous avez défini les limites de Push the Edge, vous pourriez finir par vous battre contre le framework ...

9
kenyee