Sequelize 在 Node.js 中的快速入门教程

阅读时长 9 分钟读完

在 Node.js 中使用 Sequelize 可以方便的操作关系型数据库。Sequelize 是一个基于 Promise 的 ORM 框架,支持多种数据库,如 MySQL、PostgreSQL、SQLite、MSSQL 等。本文将为你介绍 Sequelize 的基本概念及使用方式,以帮助你快速掌握它的使用。

安装 Sequelize

安装 Sequelize

使用以下命令安装 Sequelize:

同时还需要安装相应的数据库驱动。

比如使用 MySQL,就需要安装 mysql2 驱动:

连接数据库

在使用 Sequelize 之前,我们需要通过 Sequelize 构建一个模型,模型代表数据库中的表。在模型之前,我们需要先进行数据库连接。

上面代码中,构造了一个 Sequelize 的实例,第一个参数为数据库名称,第二个参数为用户名,第三个参数为密码。其中,dialect 表示数据库类型,这里使用 MySQL 数据库。当然,我们还需要指定 host 选项,表示数据库服务器的主机名或 IP 地址。

这样,我们就成功的连接了数据库,接下来就可以创建一个模型了。

创建模型

定义模型

创建一个模型需要定义它的结构和属性,以及它与其他模型之间的关系。

在 Sequelize 中,模型通过 sequelize.define 方法来定义。例如,下面的代码定义了一个 User 表:

-- -------------------- ---- -------
----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -
    ----- -----------------
    ---------- -----
  --
  ---- -
    ----- ------------------
    ---------- -----
  -
---

上面代码中,我们定义了 User 表,并指定了它的主键、自增属性以及三个字段,分别是 id、name 和 age。其中 id 类型为 INTEGER,是主键,自增,name 和 age 类型均为 STRING 和 INTEGER。

定义关联

关联是模型之间的联系,往往指定了一个模型的实例与其他模型的实例之间的关系。

在 Sequelize 中,我们可以通过 belongsTohasOnehasManybelongsToMany 等方法来定义不同类型的关联。

belongsTo 方法用于关联两个模型中的一对一关系,如:

-- -------------------- ---- -------
----- ------- - --------------------------- -
  ------ ----------------
---

----- ---- - ------------------------ -
  ------ -----------------
  ------------ --------------
---

------------------------

上面代码中,我们定义了 Project 模型和 Task 模型,使用 belongsTo 定义了 Task 模型和 Project 模型之间的关系。

hasOnehasMany 方法用于关联两个模型中的一对多关系。

-- -------------------- ---- -------
----- ---- - ------------------------ -
  ------ -----------------
  --------- ----------------
---

----- ---- - ------------------------ -
  ------ -----------------
  ------------ --------------
---

-------------------

上面代码中,我们定义了 User 模型和 Task 模型,使用 hasMany 定义了 User 模型和 Task 模型之间的关系。

belongsToMany 方法用于关联两个具有多对多关系的模型,如下面的例子:

-- -------------------- ---- -------
----- ------- - --------------------------- -
  ----- -----------------
---

----- ------ - -------------------------- -
  ----- -----------------
---

----------------------------- - -------- --------------- ---
----------------------------- - -------- --------------- ---

上面代码中,我们定义了 Student 模型和 Course 模型,使用 belongsToMany 定义了 Student 模型和 Course 模型之间的关系。

使用模型

定义模型之后,我们就可以使用模型来操作数据库了。

创建记录

使用模型的 create 方法来创建新记录。

-- -------------------- ---- -------
----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -
    ----- -----------------
    ---------- -----
  --
  ---- -
    ----- ------------------
    ---------- -----
  -
---

------ -- -- -
  ----- ---------------- ------ ---- ---

  ----- ---- - ----- -------------
    ----- ----- -----
    ---- --
  ---

  ---------------------------
-----

上面代码中,我们使用 create 方法创建一个新的用户记录,并将它指定为 name 为 John Doe,age 为 30。在 create 调用完之后,它将返回一个 Promise,它将 resolve 为插入的记录对象。

查询记录

使用模型的 findOnefindAll 方法来查询记录。

-- -------------------- ---- -------
----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -
    ----- -----------------
    ---------- -----
  --
  ---- -
    ----- ------------------
    ---------- -----
  -
---

------ -- -- -
  ----- ---------------- ------ ---- ---

  ----- ---- - ----- -------------
    ----- ----- -----
    ---- --
  ---

  ----- --------- - ----- -------------- ------ - ----- ----- ---- - ---

  --------------------------------
-----

上面代码中,我们使用 findOne 方法查询 name 为 "John Doe" 的用户,并将查询结果打印出来。

更新记录

使用记录对象的 save 方法来更新数据库中的记录。

-- -------------------- ---- -------
----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -
    ----- -----------------
    ---------- -----
  --
  ---- -
    ----- ------------------
    ---------- -----
  -
---

------ -- -- -
  ----- ---------------- ------ ---- ---

  ----- ---- - ----- -------------
    ----- ----- -----
    ---- --
  ---

  --------- - ----- -----
  ----- ------------

  ---------------------------
-----

上面代码中,我们使用记录对象的 save 方法来更新 name 属性,并将它保存到数据库中。

删除记录

使用记录对象的 destroy 方法来删除数据库中的记录。

-- -------------------- ---- -------
----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -
    ----- -----------------
    ---------- -----
  --
  ---- -
    ----- ------------------
    ---------- -----
  -
---

------ -- -- -
  ----- ---------------- ------ ---- ---

  ----- ---- - ----- -------------
    ----- ----- -----
    ---- --
  ---

  ----- ---------------

  ---------------------------
-----

上面代码中,我们使用记录对象的 destroy 方法来删除数据库中的记录。

总结

通过本文的介绍,相信大家对 Sequelize 的使用方法有了一个初步的了解。Sequelize 作为一个强大的 ORM 框架,对于 Node.js 中的数据库操作是一个非常重要的组成部分。下一步,我们可以在实际项目中运用 Sequelize,从而更好的掌握它的使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a67eaa48841e9894321368

纠错
反馈