如何在 Deno 中构建基于 RESTful API 的 Web 应用

阅读时长 9 分钟读完

RESTful API 是一种基于 HTTP 协议的 API 设计风格,它具有简洁、灵活、易于扩展等优点,已经成为现代 Web 应用开发的标准。Deno 是一个新兴的 JavaScript 运行时环境,它提供了安全、稳定、高效的开发体验,也是构建基于 RESTful API 的 Web 应用的一个不错的选择。本文将介绍如何在 Deno 中构建基于 RESTful API 的 Web 应用,包括路由设计、数据存储、错误处理等方面的内容。

安装和使用 Deno

首先,我们需要安装 Deno。可以通过官网提供的一行命令来安装:

安装完成后,可以在命令行中输入 deno 来验证是否安装成功。

接下来,我们可以创建一个新的项目,例如:

app.ts 中,我们可以编写第一个 Deno 程序:

然后,我们可以在命令行中执行 deno run app.ts 来运行程序,输出结果为 Hello, Deno!

设计 RESTful API

在构建基于 RESTful API 的 Web 应用时,我们需要先设计 API 的路由和数据模型。路由是指 API 的 URL 地址,数据模型是指 API 的输入和输出数据格式。

例如,我们要构建一个简单的 TODO 应用,它包含以下 API:

  • GET /todos:获取所有 TODO
  • GET /todos/:id:获取指定 ID 的 TODO
  • POST /todos:创建新的 TODO
  • PUT /todos/:id:更新指定 ID 的 TODO
  • DELETE /todos/:id:删除指定 ID 的 TODO

对应的数据模型如下:

使用 Oak 框架

Deno 并没有自带 Web 框架,但是社区已经有很多成熟的框架可供选择。这里我们选择 Oak 框架作为示例。

首先,我们需要安装 Oak 框架:

然后,我们可以创建一个 router.ts 文件,定义 API 的路由和处理函数:

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

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

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

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

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

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

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

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

然后,在 app.ts 中引入 router.ts 并启动应用:

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

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

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

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

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

现在,我们可以在命令行中执行 deno run --allow-net app.ts 来启动应用,访问 http://localhost:8000/todos 即可获取所有 TODO。

使用 MongoDB 存储数据

在实际开发中,我们需要将数据存储到数据库中。这里我们选择 MongoDB 作为示例。

首先,我们需要安装 MongoDB 驱动:

然后,我们可以在 router.ts 中使用 MongoDB 驱动来操作数据:

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

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

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

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

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

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

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

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

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

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

现在,我们可以在命令行中执行 deno run --allow-net --allow-write --allow-read --allow-plugin --unstable app.ts 来启动应用,访问 http://localhost:8000/todos 即可获取所有 TODO,并将它们存储到 MongoDB 中。

错误处理

在实际开发中,我们需要对 API 的错误进行处理。这里我们可以使用 Oak 框架提供的中间件来处理错误。

首先,我们可以创建一个 error.ts 文件,定义错误处理中间件:

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

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

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

然后,在 app.ts 中引入 error.ts 并使用错误处理中间件:

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

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

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

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

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

现在,我们可以在命令行中执行 deno run --allow-net --allow-write --allow-read --allow-plugin --unstable app.ts 来启动应用,访问不存在的 URL 地址即可触发错误处理中间件。

总结

本文介绍了如何在 Deno 中构建基于 RESTful API 的 Web 应用,包括路由设计、数据存储、错误处理等方面的内容。Deno 提供了安全、稳定、高效的开发体验,Oak 框架提供了方便、灵活、易于扩展的 Web 开发工具,MongoDB 驱动提供了数据存储和查询的功能,这些工具的组合可以帮助我们快速构建现代化的 Web 应用。

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

纠错
反馈