我陷入了困境。我已经学会了ExpressJS来开发一个Web应用程序,而且我已经完成了四分之一的工作。然后是最近发布的Meteor。它已经获得了大量的新闻,资金,并且它有能够移植到科尔多瓦的好处。现在我不确定是要坚持使用ExpressJS还是过渡到Meteor。
要点:可扩展性,易用性,开发效率
答案 0 :(得分:31)
Express =使用Javascript构建的MVC框架,由Node提供支持。
Meteor = Full Stack,具有构建实时应用程序的前端和后端组件。
要使用Express创建相同的Meteor实现,您需要查看MEAN堆栈,其中包括MongoDB,Express,AngularJS和Node。您可以使用MEAN堆栈在Meteor中创建相同的东西,尤其是使用AngularJS,您将会进行更多的学习。使用Meteor的模板系统和Blaze在Meteor中处理Express和Angular。
我会坚持使用流星。它仍然有一些缺点,但有一些解决方法。你可以在很短的时间内把它扔在一起真是太神奇了。
答案 1 :(得分:10)
您将橙子与土豆进行比较。 Expressjs是后端,Meteor是fullstack,这样的比较是不公平的!
我从0.8开始与Meteor合作,我在皮肤上遭受了升级的痛苦,删除了旧的重要第三方套餐等,你明白了。虽然Meteor达到1.0,但我并不认为移动组件已经准备就绪,请检查github问题。
我认为Meteor已准备好构建在线平台。如果您发现它在移动设备上播放效果不佳,您仍然可以维护Meteor应用程序并在其上创建API,您可以在atmospherejs.com上找到它的包(或者甚至使用iron:router) 。这就是Expressjs的用途:创建一个供移动设备使用的API。
关于流星的关键点:可扩展性 - 虽然你不是一篇关于它的好文章但可以扩展Meteor,但是如果你看看Kadira,Arunoda设法扩展它。易于使用 - 在开始时编写Meteor应用程序相当容易,但从长远来看,您将遇到像我所面临的一些问题。开发效率 - 我在团队方面的经验不是那么积极,我们有糟糕的架构设计选择和一些错误,因为新开发人员(甚至经验丰富的开发人员)没有获得Meteor,例如:而不是使用集合允许和拒绝规则,他们使用Meteor.methods来处理任何不能转化为安全性的方法。有些人甚至将整个数据库发布到客户端并说:在我的localhost上工作得很好:D
关于快递:我对此没什么经验,但与Meteor比较,它根本不公平。 Meteor与Expressjs的目的不同。
与MEAN Stack的比较会更有意义:http://mean.io/
答案 2 :(得分:4)
Express.js与Meteor完全不同。
Meteor试图为每个人做出很好的决策(希望是好的决策)提供一个好的框架,从应用程序开发的角度来看,这些决策通常是无趣的:使用什么传输库,如何同步数据,如何构建可重用的API,安全性,与数据库的CRUD操作等。
相反,Meteor为您提供跨堆栈的统一体验。由于它对后端,传输,接口,前端,构建工具链有如此多的功率控制 - 它可以构建许多简洁的功能,从Mongo + Express +你最喜欢的前端框架粘合起来会更加困难+ socket.io +咕噜/咽。
阅读Socket.io的创建者博客,了解如今在单页面应用中提供良好用户体验的难度:http://rauchg.com/2014/7-principles-of-rich-web-applications/。流星做了很多+更多。 (服务器端渲染和预测除外,至少现在是这样)。
如果您选择的抽象程度太低,希望实现一切正确,请考虑一下您将拥有多少安全漏洞。