简介
Sequelize 是一款基于 Promise 的 Node.js ORM(Object-Relational Mapping) 框架,支持 MySQL、PostgreSQL、SQLite 和 MSSQL 等多种数据库,提供了丰富的 API,可以方便地进行数据库操作。本文将介绍如何在 Express.js 中使用 Sequelize,包括安装、配置、模型定义、查询以及关联操作等内容。
安装
使用 npm 安装 Sequelize 和相应的数据库驱动程序:
npm install --save sequelize mysql2
配置
在 Express.js 项目中,可以在 app.js 或者其他入口文件中,引入 Sequelize,并进行配置:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' });
其中,'database'、'username' 和 'password' 分别为数据库名称、用户名和密码,host 和 dialect 分别指定数据库的地址和类型。
模型定义
在 Sequelize 中,模型定义类似于数据库表的定义,需要指定表名、字段名、字段类型、主键、外键、索引等信息。下面是一个简单的模型定义示例:
-- -------------------- ---- ------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- ----- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ------ ------- ---- -- --------- - ----- ----------------- ---------- ----- - ---
其中,User 是模型的名称,user 是表名。id、name、email 和 password 分别是字段名,Sequelize.INTEGER、Sequelize.STRING 等是字段类型。autoIncrement 和 primaryKey 分别指定自增和主键,allowNull 和 unique 分别指定是否允许为空和是否唯一。
查询
在 Sequelize 中,查询可以使用多种方式,包括 findAll、findOne、findByPk、create 等。下面是一个示例:
-- -------------------- ---- ------- -------------- ------ - ----- ------ - ------------- -- - ------------------- --- -------------- ------ - ------ ------------------ - ------------ -- - ------------------ --- -------------------------- -- - ------------------ --- ------------- ----- ------- ------ ------------------- --------- -------- ------------ -- - ------------------ ---
其中,findAll 和 findOne 分别查询多条和一条记录,findByPk 根据主键查询一条记录,create 新增一条记录。
关联操作
在 Sequelize 中,可以方便地进行关联操作,包括一对一、一对多、多对多等关联。下面是一个示例:
-- -------------------- ---- ------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- ------ - ----- ----------------- ---------- ----- -- -------- - ----- --------------- ---------- ----- - --- ------------------- --------------------- -------------- ------ - ----- ------ -- -------- ---- ------------ -- - ------------------ --- ------------- ----- ------- ------ ------------------- --------- --------- ------ - - ------ --- ----- ------ -------- ------- ------- - - -- - -------- ---- ------------ -- - ------------------ ---
其中,Post 是另外一个模型,表示文章。User.hasMany(Post) 表示一对多关联,Post.belongsTo(User) 表示反向关联。User.findOne 中的 include 表示关联查询,User.create 中的 posts 表示新增关联记录。
总结
Sequelize 是一款强大的 Node.js ORM 框架,可以方便地进行数据库操作,尤其适用于 Express.js 项目。本文介绍了 Sequelize 的安装、配置、模型定义、查询以及关联操作等内容,希望能够对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/658a92ddeb4cecbf2dfcad3d