实现 Deno 中的 CRUD RESTful API

前言

Deno 是一个基于 V8 引擎的 JavaScript/TypeScript 运行时,由 Node.js 的创始人 Ryan Dahl 开发。相比于 Node.js,Deno 更加安全、更加简洁,而且自带 TypeScript 支持。

本文将介绍如何在 Deno 中实现一个简单的 CRUD RESTful API,希望能为初学者提供一些指导。

环境搭建

首先,需要安装 Deno 运行时。可以到官网(https://deno.land/)下载安装包,也可以使用包管理器(如 Homebrew)安装。

安装完成后,可以使用以下命令检查是否安装成功:

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

接着,需要安装一个简单的 HTTP 服务器,这里我们使用 Oak。Oak 是一个基于中间件的 Web 框架,类似于 Node.js 中的 Express。

可以使用以下命令安装 Oak:

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

实现 CRUD RESTful API

接下来,我们将通过实现一个简单的 Todo 应用程序来学习如何在 Deno 中实现 CRUD RESTful API。

创建数据模型

首先,我们需要创建一个数据模型来存储 Todo 数据。在本例中,我们只需要存储 Todo 的标题和完成状态。

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

创建路由

接下来,我们需要创建路由来处理 HTTP 请求。在 Oak 中,路由是由中间件组成的。

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

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

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

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

我们定义了 5 个路由:

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

实现路由处理函数

接下来,我们需要实现路由处理函数来处理 HTTP 请求。在本例中,我们将数据存储在内存中,而不是使用数据库。

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

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

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

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

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

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

在 getAllTodos 函数中,我们将所有的 Todo 返回给客户端。

在 getTodoById 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们将 Todo 返回给客户端;否则,返回 404 错误。

在 createTodo 函数中,我们从 HTTP 请求中获取 Todo 的标题,并为其生成一个随机的 ID。然后,我们将 Todo 存储在内存中,并将其返回给客户端。

在 updateTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从 HTTP 请求中获取 Todo 的标题和完成状态,并更新 Todo。然后,我们将更新后的 Todo 返回给客户端;否则,返回 404 错误。

在 deleteTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从内存中删除 Todo;否则,返回 404 错误。注意,我们在删除 Todo 后返回 204 状态码,表示请求成功但没有响应内容。

运行应用程序

最后,我们需要运行应用程序。可以使用以下命令:

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

在浏览器中访问 http://localhost:8000/todos 即可查看所有 Todo。可以使用 Postman 或类似工具来测试其他路由。

总结

本文介绍了如何在 Deno 中实现一个简单的 CRUD RESTful API。通过本例,我们学习了如何使用 Oak 创建路由、如何实现路由处理函数以及如何存储数据。希望本文能对初学者提供一些指导。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65fb9866d10417a22272c8bb