Waterline基本介绍
Waterline是什么
Waterline是下一代存储和检索引擎,也是Sails框架中使用的默认ORM 。
ORM的基本概念
Object Relational Mapping
将文档数据库中的一个文档,关系数据库表中的一行,映射为JavaScript中的一个对象
操作对象,便可以完成对数据库的操作
Waterline特点和优势
支持大部分主流数据库
脱离SQL
使用同样的代码操作不同的数据库
易于理解的符号 //数学符号
丰富的方法 //增删改查 20多个
多样的数据类型
Waterline相对于Mongoose的比较
支持更多的数据库
提供比Mongoose更丰富的CURD方法
更丰富的数据校验方法
Waterline主要概念
适配器
功能:将统一的操作代码,转换为某种数据库所支持的数据库操作
代码创建:
var mysqlAdapter = require('sails-mysql');
var mongoAdapter = require('sails-mongo');
var adapters = {
mongo : mongoAdapter,
mysql : mysqlAdapter,
default : mongo
}
连接
通过某个适配器,及对应的连接信息,来建立一个与数据库的实际连接
代码展示:
//连接配置
var connections = {
mongo : {
adapter : 'mongo',
url : 'mongodb://localhost/watereline'
},
mysql : {
adapter : 'mysql',
url : 'mysql://root:@localhost/watereline'
}
};
数据集合
定义具体的数据类型
类似于mongoose中的Model
具体对应关系数据库中的表、和文档数据库中的集合
校验器
执行数据检查
使用的是Anchor https://github.com/sailsjs/anchor
预定义的数据校验器,支持常规检查、时间检查、经纬度坐标检查、Email地址检查等
支持自定义数据校验器
生命周期回调
创建时:beforeValidate/afterValidate/beforeCreate/afterCreate
更新时:beforeValidate/afterValidate/beforeUpdate/afterUpdate
删除时:beforeDestroy/afterDestroy