sails先說好處
- blueprint接口直接和ORM工具對接,這個是很理想的狀態,意味著你model層面設計好了之后就可以直接使用uriapi進行增刪改查,而且查詢的方式支持比較好,還可以在url上進行表間關聯的查詢,基本滿足你日常80%的需要
- 對各個暴露出去的接口有很好的訪問策略的管理,可以非常方便地掛載各種自定義的權限設定
- waterline不僅僅是一個ORM,而且是一個維護數據表定義、版本的工具,而且還能作為有限的部署工具,幫你把數據庫給建立起來,是夢寐以求的工具,只需要你定義model.js中字段,其余的就交給waterline了
- hooks可以作為一些常駐進程的任務
- 主要是各個主要部件整合得很好,對外暴露URI的blueprint和ORMwaterline和路由整合很好
- 如果要擴展原來的功能,那么sails提供幾個方式,可以讓這個比較容易的進行,比如說你在api下建立一個blueprint,里面放入add.js就可以改變原來的行為CURD中Create的行為
- 在安全策略上,你可以很容易地在policies中添加驗證的邏輯。然后指定到需要的route上
- 和其他工具集成如grunt,方便你的自動化
- 無論是model還是controller中,都可以在執行前和執行后注入你要的邏輯,而且是全部注入或者有邏輯地注入。
- 啟動很慢,如果你習慣了express的秒開,那么這個sailsjs會讓你發狂的
- 默認設置中blueprint會幫你生成綁定非常多的路由,基本上你不太會用到的,極大延長了啟動時間,如果改用固定的路由寫在config/routes.js中,然后blueprint.js中的所有設置都為false,那么起碼節約一半的時間
- sailsjs啟動的時候需要include所有的類庫,在我這里要遍歷這么多文件,很難接受
- 另外就是吐槽waterline,你如果用mysqlSHOWFULLPROCESSLIST,你回發現waterline做的queries是一個正常人類無論如何都不可能寫出來的。
- 原來自帶的ejs模板有點多余,我們用webpack來作前端的構建,非常方便。