Sequelize CRUD 操作指南:创建、读取、更新、删除

阅读时长 5 分钟读完

Sequelize 是一个 Node.js 的 ORM 框架,它提供了对关系型数据库的支持,并提供了一系列的 API 来进行 CRUD(增删改查)操作。本文将介绍如何使用 Sequelize 进行 CRUD 操作。

创建

首先,我们需要创建一个 Sequelize 实例,来连接数据库。在创建实例时,需要传入数据库的相关信息,如数据库名、用户名、密码等。

接着,我们需要定义一个模型(Model),来映射数据库中的表。在 Sequelize 中,模型是通过调用 sequelize.define 方法来定义的。下面是一个简单的例子:

在上面的例子中,我们定义了一个名为 user 的模型,它有两个属性:nameagetype 属性指定了属性的类型,这里分别为字符串和整数。

接下来,我们可以使用 create 方法来创建一条记录:

在上面的代码中,我们创建了一个名为 Alice,年龄为 18 的用户,并将其保存到数据库中。create 方法返回一个 Promise,它的值是创建的记录。我们可以调用 toJSON 方法将其转换为 JSON 格式并输出到控制台上。

读取

在 Sequelize 中,读取操作有很多种方式。这里我们介绍两种常用的方式:findOnefindAll

findOne 方法用于查询一条记录。下面是一个例子:

在上面的代码中,我们查询了名为 Alice 的用户,并将其输出到控制台上。

findAll 方法用于查询多条记录。下面是一个例子:

-- -------------------- ---- -------
--------------
  ------ -
    ---- -
      ------------------ --
    -
  -
------------- -- -
  -------------------------- -- ----------------
---
展开代码

在上面的代码中,我们查询了年龄大于 20 的所有用户,并将其输出到控制台上。

更新

更新操作也有多种方式。这里我们介绍两种常用的方式:updatesave

update 方法用于更新多条记录。下面是一个例子:

-- -------------------- ---- -------
-------------
  ---- --
-- -
  ------ -
    ----- -------
  -
-------------- -- -
  --------------------
---
展开代码

在上面的代码中,我们将名为 Alice 的用户的年龄更新为 20。update 方法返回一个 Promise,它的值是更新的记录数。

save 方法用于更新一条记录。下面是一个例子:

-- -------------------- ---- -------
--------------
  ------ -
    ----- -------
  -
------------ -- -
  -------- - ---
  ------ ------------
------------ -- -
  ---------------------------
---
展开代码

在上面的代码中,我们查询了名为 Alice 的用户,并将其年龄更新为 21。save 方法返回一个 Promise,它的值是更新后的记录。

删除

删除操作也有多种方式。这里我们介绍两种常用的方式:destroytruncate

destroy 方法用于删除多条记录。下面是一个例子:

-- -------------------- ---- -------
--------------
  ------ -
    ---- -
      ------------------ --
    -
  -
-------------- -- -
  --------------------
---
展开代码

在上面的代码中,我们删除了年龄小于 20 的所有用户。destroy 方法返回一个 Promise,它的值是删除的记录数。

truncate 方法用于删除整个表。下面是一个例子:

在上面的代码中,我们删除了整个 user 表。truncate 方法返回一个 Promise,它的值为 undefined

结语

本文介绍了 Sequelize 的 CRUD 操作,包括创建、读取、更新、删除。这些操作是我们在开发中经常会用到的,希望本文能对读者有所帮助。完整的示例代码可以在 GitHub 上找到。

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

纠错
反馈

纠错反馈