web-dev-qa-db-ja.com

node.jsとmeteor.jsの違いは何ですか?

だから、meteor.jsについてよく聞いたり読んだりしています。チュートリアルを見ると、フレームワークとして非常にスポーティに見えますが、Webプログラミングに関してはまだ初心者です。

私は先月半からnode.jsを実際に学び、それがどのように組み合わされるかを理解しようと試みてきました。起動して実行するのがどれだけ速くて簡単であるか、それに付随するコミュニティ(Nodeで取得できるフレームワークの数が多いことで実証されています)が気に入っています。

しかし、流星はどうですか?それの本当の利点は何ですか、違いは何ですか?誰かがnode.jsユーザーとして始めて「変換」しましたか、それともまだ奇妙な新しいフレームワークですか?

88
ZacAttack

大まかな例えは、「流星はNodeに、RailsはRubyに」です。これは、サーバー上でNodeを使用する大規模で独断的なフレームワークです。 Node自体は、HTTP要求を送受信したり、他のI/Oを実行する機能を提供する低レベルのフレームワークです。

Meteorは根本的に野心的です:デフォルトでは、それが提供するすべてのページは、実際には Handlebars サーバーと同期を保つテンプレートです。 Leaderboardの例 を試してください。「名前とスコアを一覧表示する」というテンプレートを作成し、クライアントが名前またはスコアを変更するたびに、そのページだけでなく、新しいデータでページが更新されますクライアント。ただし、ページを表示するすべてのユーザー。

別の違い:Node自体は安定しており、本番環境で広く使用されていますが、Meteorは「プレビュー」状態です。重大なバグがあり、Meteorのデータ中心の概念モデルに適合しない特定の事項(アニメーションなど)を行うのは非常に困難です。

新しいテクノロジーで遊ぶのが好きなら、Meteorを試してみてください。 Node上に構築された、より伝統的で安定したWebフレームワークが必要な場合は、 Express をご覧ください。

159
Trevor Burnham

Meteorは、node.jsの上に構築されたフレームワークです。 node.jsを使用してデプロイしますが、いくつかの違いがあります。

キーは、ノードのモジュールベースのシステムではなく、独自のパッケージングシステムを使用します。 Nodeを使用してWebアプリケーションを簡単に作成できます。 Nodeはさまざまな用途に使用できますが、動的なWebコンテンツを提供すること自体はひどいものです。 Meteorのライブラリは、これらすべてを簡単にします。

12
Akshat

Meteorの強みは、リアルタイムの更新機能にあります。この機能は、最近見ているソーシャルアプリケーションのいくつかでうまく機能します。これらの更新は、Webブラウザー上のローカルミニmongo(クライアント側MongoDBサブセット)データベース更新としてテンプレートの下にあるMongoDBコレクションのサブセットの複製を中心にしています(これにより、テンプレートで複数のレンダリングイベントが発生します)。複数のレンダリング更新に関する後半部分も弱点です。 UIを更新するタイミングをUIで制御する場合(たとえば、HTMLをロードし、すべてのAJAX呼び出しとUI更新を制御する従来のjQuery AJAXページ)このメカニズムと戦っています。

Meteorは、ストレージ層用のMongoDBに沿って、Node.jsプラグインの素敵なスタック(Handlebars.js、Spark.js、Bootstrap cssなどを使用しますが、npmではなく独自のパッケージングメカニズムを使用します)考える必要はありません。しかし、時にはあなたもそれと戦うことになります...例えば、Bootstrapテーマをカスタマイズしたい場合、Bootstrapのresponsive.cssファイルのロードシーケンスを台無しにして、もはや応答しないようにします(しかし、 Bootstrap 3.0がまもなくリリースされると、おそらく自動的に修正されます)。

したがって、すべての「フルスタックフレームワーク」と同様に、アプリが意図したものに適合する限り、物事はうまく機能します。その範囲を超えてエッジの境界をプッシュすると、フレームワークと戦うことになります...

9
kenyee