如何使用 Sequelize 实现 API 接口的开发和部署

阅读时长 9 分钟读完

介绍

Sequelize 是一个 Node.js ORM(Object-Relational Mapping) 库,使得在 Node.js 中使用关系型数据库变得更加方便。它支持多个数据库后端,包括 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server。

在本文中,我们将介绍如何使用 Sequelize 实现 API 接口的开发和部署。我们将在 Node.js 环境中使用 Sequelize 和 Express.js。

准备

在开始使用 Sequelize 前,需要先安装以下依赖:

  • Node.js
  • npm
  • 一个关系型数据库

本文使用的是 MySQL 数据库。你可以在 MySQL 官网 下载并安装它。

在安装好以上依赖后,我们可以开始创建一个新的 Node.js 项目。

首先,在你的电脑上创建一个新文件夹,并在它的根目录下运行以下命令,以初始化一个新的 Node.js 项目:

然后,我们需要安装以下依赖:

  • Express.js:快速创建 API 接口
  • Sequelize:Node.js 中的 ORM 库
  • mysql2:MySQL 驱动程序

运行以下命令以安装它们:

创建数据库

在使用 Sequelize 前,我们需要先建立一个数据库。

我们将创建一个名为 sequelize_demo 的数据库,用于存储我们的数据。

你可以使用 MySQL 命令行或者任何图形化数据库管理软件来创建数据库。

创建 Sequelize 模型

在 Sequelize 中,模型是指表示数据库表的 JavaScript 对象。通过创建模型,可以在 Node.js 中方便地操作数据库。

我们将创建一个 users 表,用于存储用户数据。每个用户将具有以下字段:

  • id:主键
  • username:用户名
  • email:电子邮件地址
  • password:密码
  • createdAt:创建时间
  • updatedAt:更新时间

首先,在你的项目根目录下创建一个 models 文件夹,并在其中创建一个名为 user.js 的文件。

在该文件中,我们将定义一个名为 User 的模型,代码如下:

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

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

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

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

在上述代码中,我们首先创建了一个名为 sequelize 的 Sequelize 实例,用于与数据库交互。

然后,我们定义了 User 模型,在其中指定了每个字段的名称、数据类型和约束。

最后,我们使用 module.exports 导出了 User 模型,以便在其他文件中使用它。

创建 API 接口

现在我们已经准备好了模型,接下来我们将为模型创建一些基本的 API 接口,以实现 CRUD(Create、Read、Update 和 Delete) 功能。

在你的项目根目录下创建一个 routes 文件夹,并在其中创建一个名为 users.js 的文件。

在该文件中,我们将创建以下 API 接口:

  • /users:获取所有用户
  • /users/:id:根据 ID 获取单个用户
  • /users:创建一个新用户
  • /users/:id:更新现有的用户
  • /users/:id:删除现有的用户

代码如下:

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

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

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

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

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

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

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

在上述代码中,我们首先引入了 expressUser 模型,在代码中定义了五个处理函数,分别对应上述五个 API 接口。

对于每个处理函数,我们都使用了 asyncawait 关键字,以处理 Promise 对象。

其中,User.findAll()User.findByPk() 方法都是 Sequelize 的内置方法,用于查询数据库中的数据。

注意,在创建新用户时,我们使用了 User.create() 方法。该方法是 Sequelize 的内置方法,用于创建新的数据记录。

部署应用程序

现在我们已经创建了基本的 API 接口,下一步就是将我们的应用程序部署到服务器上。

首先,我们需要创建一个名为 index.js 的文件,在其中编写以下代码:

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

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

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

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

在上述代码中,我们首先引入了 expressusersRouter,其中 users 表示模型名称,代表我们在 users.js 文件中定义的 API 接口。

然后,我们创建了一个名为 app 的 Express.js 应用程序实例,并监听 3000 端口。

最后,我们通过 app.use() 方法将所有 users 路由器中定义的路由挂载到 /api 路径下。

现在,你可以运行以下命令来启动服务器:

如果一切正常,你将看到以下输出:

测试 API 接口

现在,我们已经成功创建了 API 接口,并将其部署到服务器上。下一步就是测试我们的 API 接口是否正常工作。

我们可以使用 Postman 或任何其他工具来测试 API 接口。

  • /users:GET 请求,用于获取所有用户
  • /users/:id:GET 请求,用于根据 ID 获取单个用户
  • /users:POST 请求,用于创建新用户
    • 请求体应该包含一个 JSON 对象,表示要创建的用户。例如:{ "username": "john", "email": "john@example.com", "password": "123456" }
  • /users/:id:PUT 请求,用于更新现有用户
    • 请求体应该包含一个 JSON 对象,表示要更新的用户。例如:{ "email": "newemail@example.com" }
  • /users/:id:DELETE 请求,用于删除现有用户

例如,你可以使用以下请求来测试 GET 请求:

如果服务器正常运行,你将看到一个 JSON 数组,其中包含所有用户的详细信息。

结论

在本文中,我们介绍了如何使用 Sequelize 和 Express.js 实现 API 接口的开发和部署。

我们首先创建了一个 MySQL 数据库,并使用 Sequelize 定义了一个名为 User 的模型。

然后,我们创建了一些 Express.js 路由,以实现常见的 CRUD 功能。

最后,我们将应用程序部署到服务器上,并测试了 API 接口是否正常工作。

希望这篇文章对你有所帮助!

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

纠错
反馈