Javascript Sails.js vs Meteor-两者的优点是什么?

Javascript Sails.js vs Meteor-两者的优点是什么?,javascript,node.js,model-view-controller,meteor,sails.js,Javascript,Node.js,Model View Controller,Meteor,Sails.js,我已经阅读了很多关于Nodejs及其框架的文章,最近我完成了第一个完整的javascript前端(使用Angularjs) 我已经决定,我的下一个宠物项目将是使用以下两个框架之一的Nodejs冒险: 我已经读过这两种方法,但仍然不能完全理解它们的区别,为什么我应该选择一种而不是另一种。所以请戴上你最好的推销员帽,挑选一个框架,卖给我 我的宠物项目需要的一些功能包括: 现场得分 像Reddit一样的线程,实时 类似维基百科的网页版 用户/角色 我已经用Meteor建立了几个项目,但还没有

我已经阅读了很多关于Nodejs及其框架的文章,最近我完成了第一个完整的javascript前端(使用Angularjs)

我已经决定,我的下一个宠物项目将是使用以下两个框架之一的Nodejs冒险:

我已经读过这两种方法,但仍然不能完全理解它们的区别,为什么我应该选择一种而不是另一种。所以请戴上你最好的推销员帽,挑选一个框架,卖给我

我的宠物项目需要的一些功能包括:

  • 现场得分
  • 像Reddit一样的线程,实时
  • 类似维基百科的网页版
  • 用户/角色

我已经用Meteor建立了几个项目,但还没有用Sails。所以我的观点肯定是有偏见的,希望它能有所帮助

构建前端

Meteor提供了自己的前端框架Blaze,将包含在即将发布的0.8版本中。Meteor负责将数据从集合绑定到视图。正因为如此,你不必担心告诉你的视图更新,他们就这么做了

另一方面,Sails只提供了一个后端框架,您必须自带自己的前端框架

与大多数Node.js框架不同,Meteor是同步的

Meteor在一个循环中运行,如果您想使用Node.js包,您必须确保它们在Meteor中正常运行

Sails似乎是一个简单的MVC Node.js框架,所以当您深入研究它时,应该不会有太多的意外

您应该将MongoDB与Meteor一起使用

是的,您可以将其他数据库与Meteor一起使用,但它们没有与MongoDB类似的支持。而对于Sails,看起来它们有几个数据库的ORMs

性能

用于大规模应用流星。为了解决这个问题,我们正在做大量的工作,到2014年底,我们可以期待Meteor的缩放解决方案

稳定性

流星仍然很新鲜,还没有达到1.0。您应该期望在接下来的几个版本中进行一些更改,这将破坏向后兼容性。如果你开始使用ASAP,那么你可能想考虑使用0.8RC0分支。也就是说,正在开发中的一些功能非常棒,将使1.0版本非常诱人

最后的想法?

我喜欢流星,因为它的特质。你将不得不学习流星的做事方式,但一旦你开始这样做,你会觉得你已经喝了库尔援助。由于数据绑定到视图的方式,服务器和客户端之间的线路并不遥远。Meteor代表了应用程序体系结构的范式转变,如果您还没有尝试过,我建议您使用它


PS以了解即将发生的事情。

我目前使用Meteor,但没有使用Sails.js

Meteor的使用非常愉快,我认为它将是实时web应用程序的最佳选择。关于用户/角色,您可以签出集成包,还可以搜索社区贡献的角色/权限包


最后,我建议您尝试一个同时使用这两种技术的小项目,看看您更喜欢哪一种。

我不能代表Meteor,但我可以提供一些有关Sails的背景信息,因为我创建了它

tldr Sails并不是解决所有web问题的灵丹妙药,但我相信Node.js是。Sails的目标是提供一个实用的框架,用于开发基于node.js构建的完整、可扩展、启动和企业友好的应用程序。我首先问了一个问题“我们可以使用Node.js处理所有事情吗?”。帆就是答案


从我们的:

当然,Sails是一个web框架。但是退一步。这是什么意思?有时,当我们提到“web”时,我们指的是“前端web”。我们想到的是web标准、HTML 5或CSS 3等概念;以及主干网、Angular或jQuery等框架。Sails不是“那种”web框架。Sails在有角度和主干的情况下工作得很好,但是你永远不会用Sails来代替那些库

另一方面,有时当我们谈论“web框架”时,我们指的是“后端web”;并且基于Java、Ruby或Node.js等技术构建。“后端web”框架可以帮助您完成构建API、与数据库交互、为HTML文件提供服务以及同时处理数十万用户等任务。Sails是“那种”web框架

几年前,我承诺使用Node.js处理所有事情-。我在和之上构建了sail,因为它们是(现在仍然是)各自用例中最成熟的节点模块。Sails中的请求处理代码与Express兼容,另外还有一个优点,即对Socket.io的隐式支持

Sails的设计目的是与您在Angular、主干网、iOS/ObjC、Android/Java中构建前端的任何策略兼容,甚至只是提供一个原始API供其他web服务或开发人员社区使用。如果您最终改变了方法(例如从主干线切换到角度),或者完全构建了一个新的前端(例如构建了一个Windows Phone本机应用程序),那么您的Sails应用程序仍然可以工作。正如您可能已经知道的,有些人将这种方法称为面向服务的体系结构,或SOA(在这个主题上有一个很好的平台)

按照同样的思路,Sails维护了构建web服务器的其他熟悉约定——标准MVC结构、创建干净api的能力,以及开放、可配置、可扩展甚至可交换的核心模块。这意味着可以定制风帆以适应i