sequelize 基本操作
Sequelize 是 Node 的一个 ORM(Object-Relational Mapping) 框架,用来方便数据库操作。
配置 sequelize
以 mysql 为例
首先我们要引入npm包,sequelize 依赖 mysql2 作为底层驱动,暴露出自己的 API 让我们调用,在转成 mysql 语句进行执行。
1 | "mysql2": "^1.5.1", |
1 | const Sequelize = require('sequelize') |
我们可以调用sync()
根据 model自动在数据库中创建表,也可以不调用,自己手动创。如果使用了 Sequelize 的 Associations,这必须通过 sync()
生成表结构。
创建 model
创建模型,告诉 Sequelize 如何映射数据库表
1 | const UserModel = sequelize.define('user', { |
define()
方法的第一个参数为表名,对应的是 users 表。如果不设置 timestamps,Sequlize 会自动为我们添加创建时间和更新时间,我一般选择关闭,手动添加灵活性高些。
增删改查
增
1 | (async () => { |
查
1 | (async () => { |
改
1 | (async () => { |
删
1 | (async () => { |
关联表
Sequelize 提供了一对一,一对多,多对多等关联表操作,我用的不多,这里只介绍 hasMany()
这一种,其他的可以看文档。
设置
首先要在 model 中设置
1 | const School = sequelize.define('school', { |
as 参数重新定义了目标model的名字。foreignKey 参数定义了在 t_student 表中关联 key 的名字。
关联查
如果我们想查找一个学校和这个学校中所有的学生信息,可以这样找:
1 | (async () => { |
如果我们设置了 as 就需要在 include 选项中设置同样的 as。
按条件查找
1 | (async () => { |
文档
更多详细操作请参考官方文档