Sequelize
- 连接数据库
const DB = require('sequelize')
// 连接数据库 const connect = new DB('xjg', 'root', 'root', { host: 'localhost', port: '3306', dialect: 'mysql', timezone: '+08:00', operatorsAliases: false })
- 测试是否连接成功
- 定义模型(表)
参数:1.表名 2.字段配置项 3.表配置项
timeStamps: true // 会在数据库中自动添加数据的创建时间贺修改时间
paranoid:true //开启软删除(就是数据不显示,但是还存在于数据库中)
- 创建表
force: true // 前置同步(每次先删除表,再创建表)
- 查询
- 模型定义配置项
type: DB.STRING, //常用数据类型有:STRING,TEXT,INTEGER,DATE,BOOLEAN allowNULL: false, //是否允许为空 defaultValue:‘’, //默认值-若(type:DB.BOOLEAN,则defaultValue:ture);若(type:DB.DATE,则defaultValue:DB.NOW) unique: true, //单行,若为多行唯一,则值全部相同即可 primaryKey: true, //主键,若不写,则默认为id,且自增 autoIncrement: true, //自增,一个表自增字段只有一个
references: {
model:Bar, //另外一个表
key: 'id', // 与之关联的字段
}
- 读取数据库中某字段的值:
this.getDataValue('id')或者直接 .id 或者get('id')
- 改变字段的值,get () 、set ()
- 使用模型(操作表)
User.findById(123).then(pro => {}) //通过id查询 User.findOne({where:{title: 'ninhao'}}).then(pro => {}) //只查询满足条件的一条 User.findOne({where:{title: 'ninhao'},attributes: ['id','name','age']}).then(pro => {}) //限定字段查询 User.findOrCreate() // 先查找,如不在,则添加 User.create({name: '小小',age: 12}).then() //添加
User.findAll({limit:10, offset:10,order:'title DESC',raw:true}).then() //查询所有数据(限制10条数据,偏移量10,按照title升序);多个就写在数组里;raw:true 会让查询速度更快
- min、max
- sum
- 更新update()
- 删除destroy()
模型关系(添加默认外键)
或
自定义外键,和对应表的字段