我是全栈 javascript 应用程序开发的新手,已经阅读了很多关于各种内容的帖子和文档,但我对以下问题有点困惑:
有两个框架似乎提供了非常相似的功能,但在互联网上从未相互对比(据我所知)
SailsJS - 基于 Express 构建的服务器端 MVC 框架 BreezeJS (+AngularJS) - 客户端 MVC
显然我可以将 Sails 与 Angular 结合起来,在 NPM 中有一些尝试,但没有人另外使用 Breeze,这是由于冗余还是只是一个愚蠢的想法?
我正在考虑开发一个具有计算密集型后端进程的 SPA(例如,大型数据集上的机器学习〜数百万个 mongo 文档),如
Mongo - Node : { Express - Sails } - Breeze - Angular
我正在寻找关于这种堆栈(尤其是 Breeze/Sails 部分)是否是个坏主意的反馈。另外,我非常感谢有关 javascript 全栈架构设计决策的任何建议/建议链接。
谢谢!
最佳答案
基本上,您提到的所有软件都可以在一个产品中使用。了解每个组件的用途/强度很重要:
<强>1。 MongoDB
这个很清楚:数据库引擎。
<强>2。 Node.js
这也是一个:将为您的 API 提供支持的服务器端 Javascript。
<强>3。 Express.js
现在越来越有趣了。 Express 是 Node.js 的服务器端 Web 应用程序框架,但非常简约,这意味着它提供了一些基本功能,没有隐藏的魔法和其他花哨的东西。
<强>4。 Sails.js
相反,Sails 提供了很多神奇的功能,从开箱即用的 API 开始,到套接字结束。尽管它建立在 Express 之上,但 Sails 是一个服务器端 Javascript 框架,它遵循完全不同的方法,方便而不是简单。如果我们谈论 SPA,那么 Sails 必须提供的最有用的东西无疑是开箱即用的 API:您将能够在不到 5 分钟的时间内启动并运行它。
<强>5。 Angular.js
这里我们进入客户端。 Angular 可帮助您更好地组织客户端 Javascript,并在浏览器中轻松执行一些非常复杂的任务。当然,如果我们谈论富客户端应用程序,现在 Angular(或类似的框架,如 Backbone、Ember、Knockout 等)是必不可少的。
6. Breeze .js
最后,Breeze 为您提供了一种从胖客户端 Web 应用程序组织/访问数据的方法。无论您使用的是 Angular、Backbone 还是 Knockout,Breeze 都将帮助您以类似于 ORM/ActiveRecord 概念的方式管理数据。
因此,毫无疑问,所有这些组件都可以轻松地协同工作(有时人们谈论 MEAN、MEANS、BMEAN 堆栈,其中每个字母都是框架/组件名称中的第一个字母)。但最终,应由您决定在您的产品中使用多少。作为一个方法示例,您可以从 Mongo/Node base 开始,然后通过询问自己每一个框架来选择必要的框架,它是否简化了您的生活(尤其是从长远来看)或使它复杂化。
关于node.js - SailsJS 与 BreezeJS 的 SPA 后端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159512/