用 Deno 和 MySQL 构建 REST API

阅读时长 9 分钟读完

简介

Deno 是一个现代化的 JavaScript 和 TypeScript 运行环境,由 Node.js 的创始人 Ryan Dahl 开发。相比于 Node.js,Deno 更加安全、易用、可靠和高效。MySQL 是一个流行的关系型数据库。在本文中,我们将使用 Deno 和 MySQL 来构建一个 REST API,以实现数据的增删改查操作。

准备工作

在开始之前,我们需要安装 Deno 和 MySQL。Deno 的安装可以参考官方文档:https://deno.land/manual/getting_started/installation。而 MySQL 的安装可以参考官方文档:https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/。

我们还需要安装一些 Deno 的模块,包括 oakmysqldotenvoak 是一个基于中间件的 Web 框架,mysql 是一个 MySQL 客户端,而 dotenv 则是一个用于加载环境变量的模块。

可以使用以下命令来安装这些模块:

创建数据库

在开始编写代码之前,我们需要创建一个名为 test 的数据库,并在其中创建一个名为 users 的表。可以使用以下 SQL 语句来创建这个表:

编写代码

我们将编写一个 REST API,包含以下四个路由:

  • GET /users:获取所有用户
  • GET /users/:id:根据 ID 获取用户
  • POST /users:创建用户
  • PUT /users/:id:根据 ID 更新用户
  • DELETE /users/:id:根据 ID 删除用户

在开始编写代码之前,我们先创建一个名为 config.ts 的文件,用于加载环境变量和创建 MySQL 连接池:

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

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

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

接下来,我们创建一个名为 users.ts 的文件,用于定义用户模型和路由处理函数:

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

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

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

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

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

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

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

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

最后,我们创建一个名为 app.ts 的文件,用于启动服务器:

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

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

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

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

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

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

运行代码

运行以下命令来启动服务器:

然后,我们可以使用 Postman 或其他工具来测试 API,例如:

总结

本文介绍了如何使用 Deno 和 MySQL 来构建一个 REST API,以实现数据的增删改查操作。我们使用了 Deno 的模块和 MySQL 客户端来简化开发,并使用了基于中间件的 Web 框架 oak 来处理路由。这个示例代码可以作为学习 Deno 和 MySQL 开发的指导,也可以作为实际项目的基础。

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

纠错
反馈