Sequelize 在 Express.js 中的应用实例

阅读时长 5 分钟读完

简介

Sequelize 是一款基于 Promise 的 Node.js ORM(Object-Relational Mapping) 框架,支持 MySQL、PostgreSQL、SQLite 和 MSSQL 等多种数据库,提供了丰富的 API,可以方便地进行数据库操作。本文将介绍如何在 Express.js 中使用 Sequelize,包括安装、配置、模型定义、查询以及关联操作等内容。

安装

使用 npm 安装 Sequelize 和相应的数据库驱动程序:

配置

在 Express.js 项目中,可以在 app.js 或者其他入口文件中,引入 Sequelize,并进行配置:

其中,'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

纠错
反馈