node.js与meteor.js有什么区别?

Zac*_*ack 88 node.js meteor

所以我一直在听/读很多关于meteor.js.这些教程使它看起来非常具有运动性,但在网络编程方面,我仍然是一个新手.

在过去的一个半月里,我一直在努力学习node.js并弄清楚它们是如何结合在一起的.我喜欢启动和运行的快速和简单,以及随之而来的社区(这可以通过Node获得的令人兴奋的框架数量来说明).

但是流星怎么样?它的真正优点是什么,有什么区别?有没有人开始作为node.js用户和'转换'或者它还是一个好奇的新框架?

Tre*_*ham 159

一个简单的类比是,"Meteor是Node,因为Rails是Ruby." 这是一个在服务器上使用Node的大型固定框架.节点本身只是一个低级框架,提供发送和接收HTTP请求以及执行其他I/O的功能.

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

另一个区别是:虽然Node本身很稳定并且广泛用于生产,但Meteor处于"预览"状态.存在严重的错误,并且某些不符合Meteor的以数据为中心的概念模型(例如动画)的事情很难做到.

如果你喜欢玩新技术,那就给Meteor一个旋转.如果您想要一个基于Node的更传统,更稳定的Web框架,请查看Express.

  • 另请注意,这个答案最终将不会完全准确,因为Meteor正在积极开发中,并且已经获得了可观的财务贡献,加快了开发时间,有望使其脱离"预览"阶段. (4认同)
  • @danorton是的,我肯定会这么说.对于某些应用程序,Meteor现在非常可行,并且非常乐于开发. (3认同)
  • Meteor是否改善了自去年以来的"严重错误"? (2认同)

Aks*_*hat 12

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

关键是它使用自己的包装系统而不是基于节点的模块的系统.它使用Node轻松创建Web应用程序.Node可以用于各种各样的事情,并且在提供动态Web内容方面本身很糟糕.Meteor的库使这一切变得简单.

  • 版本0.6.0现在直接支持NPM模块http://meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration (4认同)

ken*_*yee 9

Meteor的优势在于它的实时更新功能,适用于您现在看到的一些社交应用程序,在这些应用程序中,您可以看到每个人对您正在处理的内容的更新.这些更新围绕着复制底层MongoDB集合的子集,作为Web浏览器上的本地mini-mongo(它们的客户端MongoDB子集)数据库更新(这会导致在模板上触发多个渲染事件).关于多个渲染更新的后一部分也是弱点.如果您希望UI在UI刷新时进行控制(例如,您加载HTML并控制所有AJAX调用和UI更新的经典jQuery AJAX页面),您将会对抗这种机制.

Meteor使用一堆很好的Node.js插件(Handlebars.js,Spark.js,Bootstrap css等,但使用它自己的打包机制而不是npm)沿着w/MongoDB下面的存储层,你不需要想一想.但有时候你最终还是要打它...例如,如果你想自定义Bootstrap主题,它会混淆Bootstrap的responsive.css文件的加载顺序,因此它不再响应(但这可能会在Bootstrap时自行修复) 3.0即将发布).

就像所有"完整堆栈框架"一样,只要您的应用程序符合预期,事情就会很好.一旦超出该范围并推动边缘边界,您可能最终会与框架作斗争......

  • Meteor V0.6.0 +有npm集成:http://www.meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration (2认同)