2012-07-12 24 views
88

所以我一直聽到/讀了很多meteor.js。這些教程讓它看起來非常具有運動性,但在網絡編程方面,我仍然是一個新手。node.js與meteor.js有什麼區別?

我一直在努力在上個月和一半,真正學習node.js並弄清楚它是如何結合在一起的。我喜歡啓動和運行的速度和容易程度,以及隨之而來的社區(這可以通過讓您爲節點獲得大量框架來體現)。

但流星呢?它的真正優勢是什麼?它有什麼區別?有沒有人開始作爲node.js用戶和「轉換」,還是更多的是一個好奇的新框架?

回答

159

一個簡單的比喻是,「流星就像Rails的Ruby一樣是Node。」這是一個使用服務器上的Node的大型,自以爲是的框架。 Node本身只是一個低級框架,提供了發送和接收HTTP請求以及執行其他I/O的功能。流星從根本上來說,它所服務的每個頁面實際上都是一個與服務器保持同步的Handlebars模板。嘗試Leaderboard example:您創建了一個簡單地說「列出名稱和分數」的模板,並且每次客戶端更改名稱或分數時,頁面都會使用新數據進行更新 - 不僅針對該客戶端,還針對查看該頁面的所有人。

另一個區別:雖然Node本身穩定並廣泛用於生產,但Meteor處於「預覽」狀態。有嚴重的錯誤,某些不適合Meteor的以數據爲中心的概念模型(如動畫)的事情很難做到。

如果你喜歡玩新技術,給流星旋轉。如果你想要一個更加傳統,穩定的基於Node的web框架,請看Express

+2

有流星提高了「嚴重錯誤」,因爲去年? – danorton 2013-06-14 02:07:06

+3

@danorton是的,我肯定會這麼說。對於某些應用,流星現在是非常可行的,以及與之共同開發的絕對樂趣。 – 2013-06-14 18:34:53

+4

另外請注意,這個答案最終會不完全準確的流星是在積極發展,並已得到了該加快開發時間希望把它從它的「預覽」階段的相當大的財政貢獻。 – Goddard 2013-07-15 20:04:32

12

流星是一個構建在node.js上的框架。它使用node.js進行部署,但有幾處不同之處。

關鍵是它使用自己的包裝系統,而不是節點的基於模塊的系統。它使使用Node創建Web應用程序變得很容易。節點可以用於各種各樣的事情,並且它自己在提供動態Web內容方面非常糟糕。流星的圖書館使這一切變得簡單。

+4

版本0.6.0現在有NPM模塊直接支持http://meteor.com/blog/2013/04/ 04 /流星-060-全新的分配系統,應用程序的程序包,NPM-整合 – 2013-04-08 11:46:09

9

流星的實力在於它的實時更新功能,它適用於您現在看到的一些社交應用程序,您可以在其中看到每個人的工作更新。這些更新的核心是在您的Web瀏覽器上(這會導致在您的模板上觸發多個渲染事件)在本地覆蓋下複製MongoDB集合的子集,作爲本地迷你mongo(它們的客戶端MongoDB子集)數據庫更新。 關於多個渲染更新的後面部分也是弱點。如果你希望你的UI能夠控制UI的刷新時間(例如,加載HTML的經典jQuery AJAX頁面,並且你可以控制所有的AJAX調用和UI更新),那麼你將會對抗這種機制。

Meteor使用一堆不錯的Node.js插件(Handlebars.js,Spark.js,Bootstrap css等,但是使用它自己的打包機制而不是npm)在w/MongoDB下爲存儲層使用不必考慮。但是有時候你最終還是會爲此而戰......例如,如果你想自定義Bootstrap主題,它會調整Bootstrap的responsive.css文件的加載順序,使其不再響應(但是當Bootstrap時它可能會自行修復3.0即將發佈)。因此,與所有「完整堆棧框架」一樣,只要您的應用符合預期目標,就可以很好地工作。一旦你超越該範圍,推動邊緣界限,你可能最終戰鬥框架...

+2

流星V0.6.0 +具有NPM集成: http://www.meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration – 2013-10-15 06:51:09