node.js与meteor.js有什么区别?[关闭]


88

所以我一直在听很多关于meteor.js的文章。这些教程使它看起来像框架一样非常运动,但是对于Web编程,我还是一个新手。

在过去的一个半月中,我一直在尝试真正地学习node.js并弄清楚它们是如何结合在一起的。我喜欢启动和运行它的速度和便捷程度,以及它所伴随的社区(以Node可以为之疯狂的框架数量为例)。

但是流星呢?它的真正优点是什么,有什么区别?有没有人以node.js用户身份开始并“转换”,还是更多是一个令人好奇的新框架?

Answers:


159

一个宽松的比喻是,“流星到Node,就像Rails到Ruby”。这是一个很大的,固执己见的框架,在服务器上使用Node。节点本身只是一个底层框架,提供了用于发送和接收HTTP请求以及执行其他I / O的功能。

Meteor雄心勃勃:默认情况下,它所服务的每个页面实际上都是与服务器保持同步的Handlebars模板。尝试排行榜示例:您创建一个简单的模板,上面写着“列出名称和分数”,每当任何客户更改名称或分数时,页面都会使用新数据进行更新-不仅针对该客户,而且还针对查看该数据的每个人页。

另一个区别:尽管Node本身很稳定并且已在生产中广泛使用,但Meteor处于“预览”状态。存在严重的错误,并且某些与流星的以数据为中心的概念模型不符的事情(例如动画)很难做到。

如果您喜欢玩新技术,请试试Meteor。如果您想要在Node上构建更传统,更稳定的Web框架,请查看Express


2
自去年以来,Meteor是否改进了其“严重错误”?
danorton

3
@danorton是的,我肯定会这么说。对于某些应用程序,Meteor现在非常可行,并且具有开发的绝对乐趣。
Trevor Burnham

4
另请注意,由于Meteor处于积极的开发中,并且已经获得了可观的财务贡献,因此该答案最终将不完全准确,从而可以加快开发时间,有望将其退出“预览”阶段。
Goddard

12

Meteor是在node.js之上构建的框架。它使用node.js进行部署,但有一些区别。

关键是它使用自己的打包系统,而不是基于节点模块的系统。使用Node制作Web应用程序很容易。Node可以用于各种各样的事情,并且独自提供动态Web内容是很糟糕的。流星的库使所有这些变得容易。


4
版本0.6.0现在直接支持NPM模块meteor.com/blog/2013/04/04/…–
Max Hodges

9

流星的优势在于它的实时更新功能,该功能非常适合当今您看到的某些社交应用程序,您可以在其中看到每个人的工作更新。这些更新围绕在Web浏览器上的本地mini-mongo(其客户端MongoDB子集)数据库更新(在后台触发多个渲染事件)下,在封面下复制MongoDB集合的子集。关于多个渲染更新的后半部分也是弱点。如果您希望用户界面控制用户界面的刷新时间(例如,经典的jQuery AJAX页面,您可以在其中加载HTML,并控制所有AJAX调用和用户界面更新),那么您将与这种机制作斗争。

Meteor在不需要MongoDB的存储层下面使用了不错的Node.js插件堆栈(Handlebars.js,Spark.js,Bootstrap css等,但使用它自己的打包机制而不是npm)来存储层想一想。但是有时您最终也要与之抗争...例如,如果您要自定义Bootstrap主题,它会弄乱Bootstrap的sensitive.css文件的加载顺序,因此它不再具有响应性(但是这可能会在Bootstrap时自行修复3.0即将发布)。

因此,像所有“全栈框架”一样,只要您的应用程序符合预期,一切就可以正常工作。一旦超出了范围并突破了极限,您可能最终会与框架抗争...


2
流星V0.6.0 +具有NPM集成:meteor.com/blog/2013/04/04/...
Manav卡塔利亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.