所以我一直在听很多关于meteor.js的文章。这些教程使它看起来像框架一样非常运动,但是对于Web编程,我还是一个新手。
在过去的一个半月中,我一直在尝试真正地学习node.js并弄清楚它们是如何结合在一起的。我喜欢启动和运行它的速度和便捷程度,以及它所伴随的社区(以Node可以为之疯狂的框架数量为例)。
但是流星呢?它的真正优点是什么,有什么区别?有没有人以node.js用户身份开始并“转换”,还是更多是一个令人好奇的新框架?
Answers:
一个宽松的比喻是,“流星到Node,就像Rails到Ruby”。这是一个很大的,固执己见的框架,在服务器上使用Node。节点本身只是一个底层框架,提供了用于发送和接收HTTP请求以及执行其他I / O的功能。
Meteor雄心勃勃:默认情况下,它所服务的每个页面实际上都是与服务器保持同步的Handlebars模板。尝试排行榜示例:您创建一个简单的模板,上面写着“列出名称和分数”,每当任何客户更改名称或分数时,页面都会使用新数据进行更新-不仅针对该客户,而且还针对查看该数据的每个人页。
另一个区别:尽管Node本身很稳定并且已在生产中广泛使用,但Meteor处于“预览”状态。存在严重的错误,并且某些与流星的以数据为中心的概念模型不符的事情(例如动画)很难做到。
如果您喜欢玩新技术,请试试Meteor。如果您想要在Node上构建更传统,更稳定的Web框架,请查看Express。
Meteor是在node.js之上构建的框架。它使用node.js进行部署,但有一些区别。
关键是它使用自己的打包系统,而不是基于节点模块的系统。使用Node制作Web应用程序很容易。Node可以用于各种各样的事情,并且独自提供动态Web内容是很糟糕的。流星的库使所有这些变得容易。
流星的优势在于它的实时更新功能,该功能非常适合当今您看到的某些社交应用程序,您可以在其中看到每个人的工作更新。这些更新围绕在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即将发布)。
因此,像所有“全栈框架”一样,只要您的应用程序符合预期,一切就可以正常工作。一旦超出了范围并突破了极限,您可能最终会与框架抗争...