天天看点

nodejs-ORM 操作数据库中间件waterline的使用一.waterline支持的数据库二.waterline的配置三.waterline的Model的定义四.校验器五.生命周期回调六.查询方法七.使用示例

nodejs-ORM 操作数据库中间件waterline的使用一.waterline支持的数据库二.waterline的配置三.waterline的Model的定义四.校验器五.生命周期回调六.查询方法七.使用示例

Waterline 之所以可以使用一样的代码来操作多种数据库,奥妙在于其适配器。在进行配置的时候,需要设置两方面的内容,一是具体使用哪些适配器,二是建立数据库连接的时候,使用哪个适配器。下面是使用 MongoDB/Mysql 的适配器创建一个数据库连接的配置

MongoDB:

Mysql:

 连接字符串说明:数据库类型://用户名:密码@数据库地址/数据库名

执行命令安装waterline:

配置相当简单方便,类似于 Mongoose 中的 Schema。但要注意,指定属性的字段时,使用的是一个字符串值,而不是 JavaScript 中的具体类型,目前支持的数据类型有 <code>string</code> / <code>text</code> / <code>integer</code> / <code>float</code> / <code>date</code> /<code>time</code> / <code>datetime</code> / <code>boolean</code> / <code>binary</code> / <code>array</code> / <code>json</code>,这个范围要比 JavaScript 的类型范围大。

除了这四个基本配置,还可以配置校验器,添加自定义的方法,设置生命周期回调方法等。

注意:

  1.如果没有定义主键,那么waterline会为你默认创建名为id的主键,类型是整型自增长

  2.waterline自动创建表时会为你添加 createdAt、updatedAt两个字段,类型为datetime,分别在insert和update操作更新字段代表的是记录的创建时间和更新时间

<code>  3.如果不想自动创建列createdAt、updatedAt,那么请设置</code>autoCreatedAt,autoUpdatedAt的值为false,如下图

  

nodejs-ORM 操作数据库中间件waterline的使用一.waterline支持的数据库二.waterline的配置三.waterline的Model的定义四.校验器五.生命周期回调六.查询方法七.使用示例

  4.waterline会自动根据定义的model创建表,但是如果你已经创建好了表,但是与model定义有所区别,比如字段名不一样,那么一定要注意了,请按照下图设置,否则waterline将会删除已经存在表且根据model重新创建,以前的数据就完蛋了

nodejs-ORM 操作数据库中间件waterline的使用一.waterline支持的数据库二.waterline的配置三.waterline的Model的定义四.校验器五.生命周期回调六.查询方法七.使用示例

<code> </code>

校验器是在创建数据集合的时候指定给具体的属性的

更多设置请查看:https://www.npmjs.com/package/waterline

 可以通过waterline,来实现在进行特定操作的时候,调用自定义的方法。,在 <code>create</code> / <code>update</code> / <code>destory</code>时,均有多种回调。直接提供对应的方法名,分别是:

创建时:<code>beforeValidate</code> / <code>afterValidate</code> / <code>beforeCreate</code> / <code>afterCreate</code>

更新时:<code>beforeValidate</code> / <code>afterValidate</code> / <code>beforeUpdate</code> / <code>afterUpdate</code>

删除时:<code>beforeDestroy</code> / <code>afterDestroy</code>

这些方法,需要在初始化数据集合的时候进行定义。

waterline有以下查询方法

nodejs-ORM 操作数据库中间件waterline的使用一.waterline支持的数据库二.waterline的配置三.waterline的Model的定义四.校验器五.生命周期回调六.查询方法七.使用示例

1.查询 name 等于 foo 的记录

 2.多条件查询 查询 name 等于 water 并且 state 等于new mexico 的记录

下面的修饰符可用于构建查询时使用。

<code>'&lt;'</code> / <code>'小于'</code>

<code>'&lt;='</code> / <code>'小于等于'</code>

<code>'&gt;'</code> / <code>'大于'</code>

<code>'&gt;='</code> / <code>'大于等于'</code>

<code>'!'</code> / <code>'非'</code>

<code>'like'/'模糊匹配'</code>

<code>'contains'/'包含'</code>

<code>'startsWith'/'以某字符开头'</code>

<code>'endsWith'/'以某字符结尾'</code>

 3.分页查询

 4.新增记录

5.更新记录

6.删除记录

Promises

这里使用的数据库是mysql创建一个数据库名为:IcbcGold

1.新建一个js文件:waterline.js,代码如下:

2.新建文件 index.js

本文转自  zddnd   51CTO博客,原文链接:http://blog.51cto.com/13013666/1949242