Waterline从概念到实操
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
Waterline从概念到实操的更多相关文章
- SBT实操指南
参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!
本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...
- (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM
接上段 (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...
- 决策树算法的Python实现—基于金融场景实操
决策树是最经常使用的数据挖掘算法,本次分享jacky带你深入浅出,走进决策树的世界 基本概念 决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数 ...
- Iptables 实操
目录 Iptables之实操 简介 名称概念: 四表中常用的表 Nat表 Filter表 iptables表和链的工作流程图 iptables过滤图 Iptables安装 Iptables 命令说明 ...
- jmeter & 性能测试:从0到实战(实操易用、面试造火箭、升职加薪必备)
[性能基础] 性能测试概念.术语:https://www.cnblogs.com/uncleyong/p/10706519.html 性能测试流程(新):https://www.cnblogs.com ...
- ISISv4协议测试——网络测试仪实操
文章关键词 ISIS协议:路由协议:协议测试: 一.文章简介: isis是一种与ospf很相似的网络协议(属于动态路由协议),它被应用在巨大规模网络,如运营商以及银行等.同样的它也是基于链路状态算法, ...
- 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操
目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...
随机推荐
- Win10下使用VSCode配置python运行环境
VSCode配置python运行环境 安装python 到官网下载python,直接安装即可,在安装过程中可以选择将python加入环境变量 安装VSCode 官网下载,直接安装 配置 安装pytho ...
- flume-ng 自定义sink消费flume source
如何从一个已经存在的Flume source消费数据 1.下载flume wget http://www.apache.org/dist/flume/stable/apache-flume-1.5.2 ...
- 布局方式-flex布局
.弹性盒子 .盒子本来就是并列的 .指定宽度即可 <style> .container { width: 800px; height: 200px; display: flex; bord ...
- VOJ1049 送给圣诞夜的礼品 【矩阵经典4】
任意门:https://vijos.org/p/1049 描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也 ...
- 2018.9.28 典型for循环特殊理解及其二维数组的理解
如果for里面换成了函数结果会是怎么样呢?下面就来介绍一下 package praDemo; public class Test { public static boolean foo(char c) ...
- 利用Graphviz画出图
graphviz官网:http://www.graphviz.org/ 背景:有画图需要,之前见到别人用graphviz画,画出来的图漂亮,且自动帮你排版安排布局,所以自己想尝试用它画. 其中遇到的几 ...
- ueditor1.2.6图片被压缩的解决办法
修改文件路径: ueditor\dialogs\image\image.html 修改数值:
- 【luogu P2936 [USACO09JAN]全流Total Flow】 题解
题目链接:https://www.luogu.org/problemnew/show/P2936 菜 #include <queue> #include <cstdio> #i ...
- 中小学信息学奥林匹克竞赛-理论知识考点--IP地址
IP地址同身份证号一样,具有唯一性! 每个人都有一个唯一的标识:身份证号. 互联网中的计算机也一样,具有一个唯一的标识:IP地址. IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也 ...
- [oracle]索引与索引表管理
(一)索引的概念 索引是一种与表或簇相关的数据库对象,能够为数据的查询提供快捷的存取路径,减少磁盘I/O,提高检索效率. 索引由索引值及记录相应物理地址的ROWID两个部分构成,并按照索引值有序排列, ...