登录
注册
node.js 学习社区
Sequelize入门一

xc

2015-01-29 17:54

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

第一步:实例化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"。

回复 · 13

发表回复

你可以在回复中 @ 其他人