ExpressJS vs MeteorJS [关闭]
Posted
技术标签:
【中文标题】ExpressJS vs MeteorJS [关闭]【英文标题】:ExpressJS vs MeteorJS [closed] 【发布时间】:2015-01-12 13:52:04 【问题描述】:我陷入了困境。我已经学会了 ExpressJS 来开发一个 web 应用程序,我已经完成了四分之一。然后是最近发布的 Meteor。它得到了很多媒体和资金支持,并且能够移植到科尔多瓦。现在我不确定是坚持使用 ExpressJS 还是过渡到 Meteor。
关键点:可扩展性、易用性、开发效率
【问题讨论】:
我已经学会了 MeteorJS 来开发一个网络应用程序,我已经完成了四分之一我想你的意思是你学会了 expressJS? 【参考方案1】:您将橘子与土豆进行比较。 Expressjs 是后端,Meteor 是全栈,这样的比较根本不公平!
我从 0.8 开始就一直在使用 Meteor,我在皮肤上遭受了升级、删除旧的重要第三方软件包等的痛苦。你明白了。虽然 Meteor 已经到了 1.0,但我认为移动组件还没有准备好,查看 github issues 就可以了。
我认为 Meteor 已准备好构建在线平台。如果你发现它在移动端表现不佳,你仍然可以维护你的 Meteor 应用程序并在其之上创建一个 API,你可以在大气js.com 上找到它的包(甚至使用 iron:router)。这就是您对 Expressjs 所做的:创建一个供移动设备使用的 API。
关于 Meteor 的关键点:可扩展性 - 尽管您不会写一篇关于 Meteor 的好文章,但可以扩展 Meteor,但如果您看一下 Kadira,Arunoda 设法对其进行了扩展。易于使用 - 一开始编写 Meteor 应用程序相当容易,但从长远来看,您将面临一些像我一样的问题。开发效率 - 我在团队中的经验不是那么积极,我们有糟糕的架构设计选择和一些错误,因为新开发人员(甚至是有经验的开发人员)没有使用 Meteor,例如:他们使用 Meteor,而不是使用集合允许和拒绝规则.methods 用于所有不能转化为安全性的东西。有些人甚至将整个数据库发布给客户端并说:在我的本地主机上工作得很好:D
关于express:我对它没有什么经验,但是和Meteor相比,这根本不公平。 Meteor 与 Expressjs 的用途不同。
与 MEAN Stack 进行比较会更有意义:http://mean.io/
【讨论】:
这个答案现在可能已经过时了,对吧? 不,今天仍然如此。 Meteor 现在是遗留维护模式,因为 MDG 转移到 Apollo 项目以支持 GraphQL(正确的决定)。 Meteor 非常适合构建中小型实时应用程序,您可以自行托管代码,而不是信任 Firebase 等。我强烈建议不要在 2018 年使用 Meteor,模块化堆栈不会束缚您的手(谈论流星构建工具中的供应商锁定:()。使用 Meteor,无论您喜欢它还是讨厌它。如果 Meteor 架构适合您的应用程序,很好,但大多数时候不是正确的答案,因为实时并不是那么必要。【参考方案2】:Express = 内置 javascript 并由 Node 提供支持的 MVC 框架。
Meteor = 具有前端和后端组件的完整堆栈,用于构建实时应用程序。
要使用 Express 创建相同的 Meteor 实现,您需要查看 MEAN 堆栈,其中包括 MongoDB、Express、AngularJS 和 Node。您可以在 Meteor 中创建与 MEAN 堆栈相同的东西,您将需要做更多的学习,尤其是使用 AngularJS。使用 Meteor 的模板系统和 Blaze 在 Meteor 中处理 Express 和 Angular。
我会坚持使用 Meteor。它仍然有一些缺点,但有一些解决方法。您可以在短时间内拼凑出的东西真是太棒了。
【讨论】:
【参考方案3】:Express.js 与 Meteor 完全不同。
Meteor 试图为每个做出很多决策(希望是好的决策)的人提供一个很好的框架,这些决策从应用程序开发的角度来看通常是无趣的:使用什么传输库、如何同步数据、如何构建可重用的API、安全性、与数据库的 CRUD 操作等。
相反,Meteor 为您提供了跨堆栈的统一体验。由于它对后端、传输、接口、前端、构建工具链有如此多的权力控制——它可以构建许多简洁的功能,这些功能很难从 Mongo+Express+你最喜欢的前端框架粘合在一起+socket.io+grunt/gulp.
阅读 Socket.io 的创建者的博客,了解如今在单页应用程序中提供良好的用户体验是多么困难:http://rauchg.com/2014/7-principles-of-rich-web-applications/。 Meteor 做了很多 + 更多。 (除了服务器端渲染和预测,至少现在是这样)。
想想如果你选择的抽象级别太低,希望能正确实现一切,你会有多少安全漏洞。
【讨论】:
Meteor 在安全性方面还有很多工作要做,但是管理复杂的堆栈有一个好处,这就是 Meteor 的亮点。 @Mário:你能扩展what Meteor needs to do when it comes to security吗?以上是关于ExpressJS vs MeteorJS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章