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来作前端的构建,非常方便。