2012-07-12 16 views
88

Así que he estado oyendo/leyendo mucho sobre meteor.js. Los tutoriales lo hacen parecer muy deportivo como marco, pero todavía soy un poco novato en lo que respecta a la programación web.node.js vs. meteor.js ¿cuál es la diferencia?

He estado probando en el último mes y medio para realmente aprender node.js y descubrir cómo funciona todo. Me gusta lo rápido y fácil que es ponerme en funcionamiento, y la comunidad que lo acompaña (que se ejemplifica con la increíble cantidad de marcos que puede obtener para Node).

Pero, ¿qué pasa con los meteoritos? ¿Cuáles son sus ventajas reales y cuál es la diferencia? ¿Alguien ha comenzado como un usuario node.js y 'convertido' o es todavía más un nuevo marco curioso?

Respuesta

159

Una analogía flexible es, "Meteor es al nodo como Rails a Ruby". Es un marco grande y obstinado que usa Node en el servidor. El nodo en sí mismo es solo un marco de bajo nivel que proporciona funciones para enviar y recibir solicitudes HTTP y realizar otras E/S.

Meteor es radicalmente ambicioso: de forma predeterminada, cada página que sirve es en realidad una plantilla Handlebars que se mantiene sincronizada con el servidor. Pruebe el Leaderboard example: crea una plantilla que simplemente dice "Enumere los nombres y puntajes", y cada vez que un cliente cambia un nombre o puntaje, la página se actualiza con los datos nuevos, no solo para ese cliente, sino para todos los que ven la página .

Otra diferencia: Mientras que el Nodo en sí es estable y ampliamente utilizado en producción, Meteor está en un estado de "vista previa". Hay errores graves, y ciertas cosas que no encajan con el modelo conceptual centrado en datos de Meteor (como las animaciones) son muy difíciles de hacer.

Si te gusta jugar con las nuevas tecnologías, dale un giro a Meteor. Si desea un marco web más tradicional y estable construido en Node, eche un vistazo al Express.

+2

¿Ha mejorado Meteoro sus "errores graves" desde el año pasado? – danorton

+3

@danorton Sí, definitivamente lo digo. Para ciertas aplicaciones, Meteor es ahora bastante viable, así como un placer absoluto para desarrollar. –

+4

También tenga en cuenta que esta respuesta eventualmente no será del todo exacta ya que Meteor está en desarrollo activo y ha recibido considerables contribuciones financieras que aceleran el tiempo de desarrollo y esperan que salga de su etapa de "vista previa". – Goddard

12

Meteor es un marco construido en la parte superior de node.js. Utiliza node.js para implementar pero tiene varias diferencias.

La clave es que utiliza su propio sistema de empaquetado en lugar del sistema basado en módulos de nodo. Hace que sea fácil hacer aplicaciones web usando Node. Nodo se puede utilizar para una variedad de cosas y, por sí solo, es terrible para servir contenido web dinámico. Las bibliotecas de Meteor hacen que todo esto sea fácil.

+4

versión 0.6.0 ahora tiene soporte directo para los módulos de NPM http://meteor.com/blog/2013/04/ 04/meteor-060-brand-new-distribution-system-app-packages-npm-integration –

9

La fuerza de Meteor radica en su función de actualizaciones en tiempo real que funciona bien para algunas de las aplicaciones sociales que se ven hoy en día donde se ven las actualizaciones de todos para lo que se está trabajando. Estas actualizaciones se centran en replicar subconjuntos de una colección MongoDB debajo de las cubiertas a medida que se actualiza la base de datos mini-mongo local (su subconjunto MongoDB del lado del cliente) en su navegador web (lo que hace que se disparen múltiples eventos de renderización en sus plantillas). La última parte sobre actualizaciones de renderizado múltiples también es la debilidad. Si desea que su UI controle cuándo se actualiza la interfaz de usuario (por ejemplo, páginas jQuery AJAX clásicas donde carga el código HTML y controla todas las llamadas AJAX y actualizaciones de UI), estará combatiendo este mecanismo.

Meteor utiliza una buena pila de complementos Node.js (Handlebars.js, Spark.js, Bootstrap css, etc. pero usando su propio mecanismo de empaquetado en lugar de npm) debajo w/MongoDB para la capa de almacenamiento que usted usa tienes que pensar Pero a veces terminas peleando también ... por ejemplo, si quieres personalizar el tema de Bootstrap, arruina la secuencia de carga del archivo responsive.css de Bootstrap para que ya no responda (pero esto probablemente se solucione cuando Bootstrap 3.0 se lanza pronto).

Al igual que todos los "marcos de pila completa", las cosas funcionan bien siempre que su aplicación se adapte a lo previsto.Una vez que va más allá de ese alcance y empuja los límites del borde, puede terminar luchando contra el marco ...

+2

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

Cuestiones relacionadas