node.js vs meteor.js qual è la differenza? [chiuso]


88

Quindi ho sentito / letto molto su meteor.js. I tutorial lo fanno sembrare molto sportivo come framework, ma sono ancora un po 'un principiante quando si tratta di programmazione web.

Ho provato nell'ultimo mese e mezzo a imparare davvero node.js e capire come si combina il tutto. Mi piace quanto sia facile e veloce essere operativi e la comunità che ne deriva (il che è esemplificato dal numero strabiliante di framework che puoi ottenere per Node).

Ma per quanto riguarda la meteora? Quali sono i veri vantaggi e qual è la differenza? Qualcuno ha iniziato come utente node.js e 'convertito' o è ancora più un curioso nuovo framework?

Risposte:


159

Un'analogia sciolta è: "Meteor sta a Node come Rails sta a Ruby". È un framework ampio e supponente che utilizza Node sul server. Il nodo stesso è solo un framework di basso livello che fornisce funzioni per inviare e ricevere richieste HTTP ed eseguire altri I / O.

Meteor è radicalmente ambizioso: per impostazione predefinita, ogni pagina che serve è in realtà un modello di manubri che viene mantenuto sincronizzato con il server. Prova l' esempio della classifica : crei un modello che dice semplicemente "Elenca i nomi e i punteggi" e ogni volta che un cliente cambia un nome o un punteggio, la pagina si aggiorna con i nuovi dati, non solo per quel cliente, ma per chiunque visualizzi il pagina.

Un'altra differenza: mentre Node stesso è stabile e ampiamente utilizzato nella produzione, Meteor è in uno stato di "anteprima". Ci sono bug seri e alcune cose che non si adattano al modello concettuale incentrato sui dati di Meteor (come le animazioni) sono molto difficili da fare.

Se ami giocare con le nuove tecnologie, dai un giro a Meteor. Se desideri un framework web più tradizionale e stabile basato su Node, dai un'occhiata a Express .


2
Meteor ha migliorato i suoi "bug gravi" dall'anno scorso?
danorton

3
@danorton Sì, lo direi sicuramente. Per alcune applicazioni, Meteor è ora abbastanza praticabile, oltre che un vero piacere svilupparlo.
Trevor Burnham

4
Si noti inoltre che questa risposta alla fine non sarà del tutto accurata poiché Meteor è in fase di sviluppo attivo e ha ottenuto notevoli contributi finanziari che accelerano i tempi di sviluppo, si spera, portandolo fuori dalla sua fase di "anteprima".
Goddard

12

Meteor è un framework costruito su node.js. Utilizza node.js per la distribuzione, ma presenta diverse differenze.

La chiave è che utilizza il proprio sistema di pacchettizzazione invece del sistema basato su moduli di node. Semplifica la creazione di applicazioni Web utilizzando Node. Il nodo può essere utilizzato per una varietà di cose e da solo è terribile nel fornire contenuti web dinamici. Le librerie di Meteor rendono tutto questo facile.


4
la versione 0.6.0 ora ha il supporto diretto per i moduli NPM meteor.com/blog/2013/04/04/…
Max Hodges

9

Il punto di forza di Meteor è nella sua funzionalità di aggiornamenti in tempo reale che funziona bene per alcune delle applicazioni social che vedi oggigiorno, dove vedi gli aggiornamenti di tutti per ciò su cui stai lavorando. Questi aggiornamenti sono incentrati sulla replica di sottoinsiemi di una raccolta MongoDB sotto le copertine come aggiornamenti del database mini-mongo locale (il loro sottoinsieme MongoDB lato client) sul tuo browser web (che causa l'attivazione di più eventi di rendering sui tuoi modelli). L'ultima parte sugli aggiornamenti di rendering multipli è anche il punto debole. Se vuoi che la tua interfaccia utente controlli quando viene aggiornata (ad esempio, le classiche pagine jQuery AJAX in cui carichi l'HTML e controlli tutte le chiamate AJAX e gli aggiornamenti dell'interfaccia utente), combatterai questo meccanismo.

Meteor utilizza una bella pila di plugin Node.js (Handlebars.js, Spark.js, Bootstrap css, ecc. Ma utilizza il proprio meccanismo di pacchettizzazione invece di npm) sotto insieme a MongoDB per il livello di archiviazione che non è necessario Pensa a. Ma a volte finisci anche per combatterlo ... ad esempio, se vuoi personalizzare il tema Bootstrap, rovina la sequenza di caricamento del file responsive.css di Bootstrap quindi non è più reattivo (ma questo probabilmente si risolverà da solo quando Bootstrap 3.0 sarà presto disponibile).

Quindi, come tutti i "framework full stack", le cose funzionano alla grande finché l'app si adatta a ciò che è previsto. Una volta che si va oltre tale ambito e si oltrepassano i confini, si potrebbe finire per combattere il framework ...


2
Meteor V0.6.0 + ha l'integrazione npm: meteor.com/blog/2013/04/04/…
Manav Kataria
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.