Sequelize 中文教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sequelize 中文教程相关的知识,希望对你有一定的参考价值。

最近刚开始接触Sequelize,当中遇到不少坑,所以想写篇Sequelize入门和大家分享,避免有道友和我一样爬坑(腾云科技ty300.com)。 学习sequelize的初衷是想解决SQL注入,它支持mysql, SQLite, MariaDB and MSSQL,文中以MySQL举例(入门教程qkxue.net)。

第一步:实例化sequelize数据库连接

var Sequelize = require(‘sequelize‘);
var sequelize = new Sequelize(‘database‘,‘user‘,‘password‘,{host : ‘XXX‘, port : ‘XXX‘, dialect : ‘mysql‘});
当然,我只是用了最简单的连接方式,具体的参数详见http://www.nodeclass.com/api/sequelize.html

第二步:定义Model,通俗来说就是将你的表结构定义出来。

复制代码
var a= sequelize.define(‘a‘, {
id: {type: Sequelize.STRING, max: 20},
Typess: {type: Sequelize.STRING, max: 20},
startStation: {type: Sequelize.STRING, max: 20},
endStation: {type: Sequelize.STRING, max: 20},
R_Date: {type: Sequelize.STRING, max: 20},
Distance: {type: Sequelize.STRING, max: 20}
},{ freezeTableName: true,
timestamps: false})
复制代码
define里面的第一个参数是表名;第二个参数是定义字段,这里我只是最简单的定义了类型、长度,类如是否允许为空,default值等等就需要大家参考文档了; 第三个参数不填的话会使用默认定义选项提供给Sequelize构造函数。此处让我爬坑爬了许久...

简单介绍下其中的两个参数:

freezeTableName: 默认为false,当为false时,如果你数据库中已有表a的话,sequelize会修改你的表名,我测试的结果是帮我的表名"a" 加了个s,导致我查询表a的数据时,总会报不存在该表。

timestamps: 默认为true,它会为你的表添加两个额外的字段“createdAt”、"updatedAt"。

Sequelize v3.24.3 和 v4.0.0-2 发布了,Sequelize.js 提供对 MySQL,MariaDB,SQLite 和PostgreSQL 数据库的简单访问,通过映射数据库条目到对象,或者对象到数据库条目。简而言之,就是 ORM(Object-Relational-Mapper)。Sequelize.js 完全是使用 javascript 编写,适用于 Node.js 的环境。

Sequelize v4.0.0-2 更新内容:

[ADDED] include now supports string as an argument (on top of model/association), string will expand into an association matched literally from Model.associations
[FIXED] Accept dates as string while using typeValidation #6453
[FIXED] - ORDER clause was not included in subquery if order option value was provided as plain string (not as an array value)
[FIXED] support for CLS with cls-bluebird module

以上是关于Sequelize 中文教程的主要内容,如果未能解决你的问题,请参考以下文章

GraphQl,Sequelize-CLi,模型捆绑器 - sequelize.import 不是函数

何时在 MYSQL 中使用 Sequelize?

Sequelize for GraphQL 中的 OneToMany 关联。自定义外键

egg.js使用指南

如何在 Angular 中使用 pg 节点包

求opencv使用教程,最好是中文的!谢谢了……