sails好处
- blueprint接口直接和ORM工具对接,这个是很理想的状态,意味着你model层面设计好了之后就可以直接使用uri api进行增删改查,而且查询的方式支持比较好, 还可以在url上进行表间关联的查询,基本满足你日常80%的需要
- 对各个暴露出去的接口有很好的访问策略的管理,可以非常方便地挂载各种自定义的权限设定
- waterline不仅仅是一个ORM,而且是一个维护数据表定义、版本的工具,而且还能作为有限的部署工具,帮你把数据库给建立起来,是梦寐以求的工具,只需要你定义model.js中字段, 其余的就交给waterline了
- hooks可以作为一些常驻进程的任务
- 主要是各个主要部件整合得很好, 对外暴露URI的blueprint和ORM waterline和路由整合很好
- 如果要扩展原来的功能, 那么sails提供几个方式,可以让这个比较容易的进行,比如说你在api下建立一个blueprint, 里面放入add.js就可以改变原来的行为CURD中Create的行为
- 在安全策略上,你可以很容易地在policies中添加验证的逻辑。然后指定到需要的route上
- 和其他工具集成如grunt,方便你的自动化
- 无论是model还是controller中,都可以在执行前和执行后注入你要的逻辑, 而且是全部注入或者有逻辑地注入。
sails坏处
- 启动很慢, 如果你习惯了express的秒开, 那么这个sailsjs会让你发狂的
- 默认设置中blueprint会帮你生成绑定非常多的路由, 基本上你不太会用到的, 极大延长了启动时间,如果改用固定的路由写在config/routes.js中,然后blueprint.js中的所有设置都为false, 那么起码节约一半的时间
- sailsjs启动的时候需要include所有的类库,在我这里要遍历这么多文件, 很难接受
- 另外就是吐槽waterline, 你如果用mysql SHOW FULL PROCESSLIST,你回发现waterline做的queries是一个正常人类无论如何都不可能写出来的。
- 原来自带的ejs模板有点多余,我们用webpack来作前端的构建,非常方便。
作者:beherca,
来源:知乎
链接:https://www.zhihu.com/question/31016301/answer/130730941
链接: https://fly63.com/nav/241