2014-01-16 23 views
3

我是新來的JavaScript應用程序的開發,看了很多帖子和文檔對各種事物的完整的堆棧,但我有點憋屈了以下問題:SailsJS與BreezeJS與後端驗證SPA

有兩個,似乎提供了相當類似的功能,但是絕不會強烈對比在互聯網上彼此(據我所知)框架

SailsJS - 服務器端的MVC框架建立在快速 BreezeJS(+ AngularJS) - 客戶端方MVC

顯然我可以結合風帆與安古但是,在NPM中有一些嘗試,但沒有一個使用Breeze,是因爲冗餘還是僅僅是一個愚蠢的想法?

我想開發具有計算密集型後端進程SPA(如大型數據機器學習組〜百萬蒙戈文件)對像

Mongo - Node : { Express - Sails } - Breeze - Angular 

我在尋找反饋,這是否堆棧(特別是Breeze/Sails部分)是一個不好的主意。此外,我非常感謝任何有關javascript全棧架構設計決策的建議/鏈接。

謝謝!

回答

8

基本上,您提到的所有軟件都可以用在一個產品中。這是重要的,雖然瞭解每個組件的用途/強度:

1 MongoDB的

這一個是相當清楚的:數據庫引擎。

2. Node.js的

這一個太:服務器端JavaScript這將增強您的API。

3 Express.js

現在,它變得更有趣。 Express是Node.js的服務器端網絡應用程序框架,但是非常簡約,這意味着它提供了一些基本功能,沒有隱藏的魔法和其他奇特的東西。

4. Sails.js

相反,帆提供了大量的魔法,開始與API開箱,並與插座結束。儘管它是構建在Express之上的,但Sails是一個服務器端的Javascript框架,它遵循完全不同的方法,簡單易行。如果我們談論SPA,那麼Sails所提供的最有用的東西就是開箱即用的API:您可以在5分鐘內啓動並運行它。

5. Angular.js

在這裏我們得到了到客戶端。 Angular可以幫助你更好地組織你的客戶端Javascript,並在瀏覽器中輕鬆執行一些非常複雜的任務。當然,如果我們正在談論富客戶端應用程序,Angular(或類似的框架,如Backbone,Ember,Knockout等)是當今必備的。

6. Breeze.js

最後,微風爲您提供了一種方法來從你的胖客戶端Web應用程序的組織/訪問數據。無論您是使用Angular,Backbone還是Knockout,Breeze都將幫助您以類似於ORM/ActiveRecord概念的方式管理數據。因此,所有這些組件都可以輕鬆地一起工作,毫無疑問(有時人們正在談論MEAN,MEANS,BMEAN堆棧,其中每個字母都是框架/組件名稱中的第一個字母)。但最終,您需要決定您的產品中應使用多少人。作爲一種方法的例子,你可以從Mongo/Node基礎開始,然後通過詢問你自己的每一個框架來選擇必要的框架,它是否會簡化你的生活(尤其是長期的)或使它複雜化。

+0

感謝這個了不起的提綱,它將這些框架定位爲端到端堆棧中的補充。 – Ward