node.js vs.meteor.js what';有什么区别?

node.js vs.meteor.js what';有什么区别?,node.js,meteor,Node.js,Meteor,所以我一直在听/读很多关于meteor.js的文章。这些教程使它作为一个框架看起来很有运动感,但在网络编程方面,我还是有点新手 在过去的一个半月里,我一直在努力学习node.js,并弄清楚它们是如何结合在一起的。我喜欢它启动和运行的速度和容易程度,以及它所带来的社区(你可以为Node获得令人兴奋的框架数量就是一个例子) 但是流星呢?它的真正优势是什么,区别是什么?是否有人从node.js用户开始使用node.js并进行了“转换”,或者它更像是一个奇怪的新框架?Meteor是一个构建在node.j

所以我一直在听/读很多关于meteor.js的文章。这些教程使它作为一个框架看起来很有运动感,但在网络编程方面,我还是有点新手

在过去的一个半月里,我一直在努力学习node.js,并弄清楚它们是如何结合在一起的。我喜欢它启动和运行的速度和容易程度,以及它所带来的社区(你可以为Node获得令人兴奋的框架数量就是一个例子)


但是流星呢?它的真正优势是什么,区别是什么?是否有人从node.js用户开始使用node.js并进行了“转换”,或者它更像是一个奇怪的新框架?

Meteor是一个构建在node.js上的框架。它使用node.js进行部署,但有几个不同之处

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

一个松散的类比是,“Meteor对于节点就像Rails对于Ruby一样。”它是一个大型的、固执己见的框架,在服务器上使用节点。节点本身只是一个低级框架,提供发送和接收HTTP请求以及执行其他I/O的功能

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

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


如果你喜欢玩新技术,给流星一个旋转。如果您希望在Node上构建一个更传统、更稳定的web框架,请看一看。

Meteor的优势在于它的实时更新功能,它适用于您现在看到的一些社交应用程序,在这些应用程序中,您可以看到每个人对您正在使用的内容的更新。这些更新的中心是将封面下的MongoDB集合的子集复制为web浏览器上的本地mini mongo(其客户端MongoDB子集)数据库更新(这会导致在模板上触发多个渲染事件)。 关于多个渲染更新的后一部分也是缺点。如果您希望您的UI控制UI刷新的时间(例如,加载HTML并控制所有AJAX调用和UI更新的经典jQueryAjax页面),那么您将要对抗这种机制

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


所以,就像所有的“全栈框架”一样,只要你的应用符合预期,一切都会很好地工作。一旦你超越了这个范围并突破了边界,你可能最终会与框架发生冲突……

0.6.0版现在直接支持NPM模块Meteor自去年以来改进了它的“严重缺陷”吗?@danorton是的,我肯定会这么说。对于某些应用程序,Meteor现在是非常可行的,并且是开发的绝对乐趣。还要注意的是,这个答案最终不会完全准确,因为Meteor正在积极开发中,并且已经获得了大量的资金投入,从而加快了开发时间,希望能够将其从“预览”中带出来阶段。Meteor V0.6.0+具有npm集成: