Sequelize 在 Express 中的 REST API 实践

阅读时长 9 分钟读完

介绍

Sequelize 是一个 Node.js 的 ORM(Object-Relational Mapping) 库,它提供了一种简单的方式来操作数据库。它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server 等。在本文中,我们将介绍如何在 Express 中使用 Sequelize 来创建 REST API,以及如何使用 Sequelize 进行 CRUD 操作。

环境搭建

在开始之前,我们需要先安装 Node.js 和 Express。在安装完 Node.js 后,可以使用以下命令安装 Express:

接下来,我们需要安装 Sequelize 和它的驱动程序。在本文中,我们将使用 MySQL 作为我们的数据库,因此我们需要安装 mysql2 驱动程序。可以使用以下命令安装 Sequelize 和 mysql2

创建数据库

在开始使用 Sequelize 之前,我们需要创建一个数据库。可以使用以下命令来创建一个名为 test 的数据库:

创建模型

在 Sequelize 中,模型用于定义数据库表的结构。我们需要创建一个模型来定义我们的用户表。在本文中,我们将创建一个名为 User 的模型,它将包含以下属性:idnameemailpassword

首先,我们需要创建一个名为 models 的文件夹,并在其中创建一个名为 user.js 的文件。在 user.js 文件中,我们需要导入 Sequelize 和 sequelize 模块,并创建一个名为 User 的模型。模型定义如下:

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

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

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

在上面的代码中,我们首先导入了 Sequelize 和 sequelize 模块,然后使用 sequelize.define 方法来创建一个名为 User 的模型。define 方法接受两个参数:模型名称和模型属性。我们定义了 idnameemailpassword 四个属性,其中 id 是主键,并且是自动增量的。nameemailpassword 属性都是字符串类型,并且不允许为空。

创建数据库连接

在使用 Sequelize 之前,我们需要先创建一个数据库连接。我们可以在 config 文件夹中创建一个名为 database.js 的文件,并在其中定义数据库连接。在本文中,我们将使用 mysql2 驱动程序来连接 MySQL 数据库。数据库连接的代码如下:

在上面的代码中,我们首先导入了 Sequelize 模块,然后使用 new Sequelize 方法创建了一个名为 sequelize 的数据库连接。我们指定了数据库的名称、用户名、密码、主机和方言。在本例中,我们使用的是 MySQL 数据库和 mysql2 驱动程序。

创建 REST API

现在我们已经创建了模型和数据库连接,我们可以开始创建 REST API。在本文中,我们将创建以下四个路由:

  • GET /users - 获取所有用户
  • GET /users/:id - 获取单个用户
  • POST /users - 创建用户
  • PUT /users/:id - 更新用户
  • DELETE /users/:id - 删除用户

获取所有用户

我们首先来创建 GET /users 路由,用于获取所有用户。在 Express 中,可以使用以下代码来创建路由:

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

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

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

在上面的代码中,我们首先导入了 Express、routerUser 模型。然后,我们使用 router.get 方法来创建 GET /users 路由。在路由处理程序中,我们使用 User.findAll 方法来查找所有用户,并将结果返回给客户端。

获取单个用户

接下来,我们来创建 GET /users/:id 路由,用于获取单个用户。在 Express 中,可以使用以下代码来创建路由:

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

在上面的代码中,我们使用 router.get 方法来创建 GET /users/:id 路由。在路由处理程序中,我们首先使用 User.findByPk 方法来查找单个用户,并将结果返回给客户端。如果用户不存在,则返回 404 错误。

创建用户

接下来,我们来创建 POST /users 路由,用于创建用户。在 Express 中,可以使用以下代码来创建路由:

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

在上面的代码中,我们使用 router.post 方法来创建 POST /users 路由。在路由处理程序中,我们使用 User.create 方法来创建新用户,并将结果返回给客户端。

更新用户

接下来,我们来创建 PUT /users/:id 路由,用于更新用户。在 Express 中,可以使用以下代码来创建路由:

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

在上面的代码中,我们使用 router.put 方法来创建 PUT /users/:id 路由。在路由处理程序中,我们首先使用 User.findByPk 方法来查找要更新的用户。如果用户不存在,则返回 404 错误。然后,我们使用 user.update 方法来更新用户,并将结果返回给客户端。

删除用户

最后,我们来创建 DELETE /users/:id 路由,用于删除用户。在 Express 中,可以使用以下代码来创建路由:

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

在上面的代码中,我们使用 router.delete 方法来创建 DELETE /users/:id 路由。在路由处理程序中,我们首先使用 User.findByPk 方法来查找要删除的用户。如果用户不存在,则返回 404 错误。然后,我们使用 user.destroy 方法来删除用户,并将结果返回给客户端。

结论

在本文中,我们介绍了如何使用 Sequelize 在 Express 中创建 REST API。我们创建了一个名为 User 的模型,并使用它来进行 CRUD 操作。我们还介绍了如何使用 Sequelize 和 MySQL 进行数据库连接。这个示例代码可以作为一个良好的起点,帮助你在 Express 中使用 Sequelize 创建你自己的 REST API。

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

纠错
反馈