Deno 教程 目录

Deno 实现CRUD操作

在本章中,我们将学习如何使用 Deno 实现基本的 CRUD (创建、读取、更新和删除) 操作。这些操作是任何 Web 应用程序的核心部分,因此理解它们对于构建功能丰富的应用程序至关重要。

准备工作

首先,我们需要安装 Deno 和一些必要的依赖项。假设你已经安装了 Deno,请确保你的环境版本是最新的。你可以通过运行以下命令来检查 Deno 的版本:

接下来,我们将使用 deno KV 来存储数据。这是一个简单的键值对存储系统,非常适合用于演示目的。首先,我们需要初始化一个新的 Deno 项目,并添加必要的权限。

创建一个新文件夹并进入该文件夹:

然后,初始化一个新的 Deno 项目:

打开 deno.json 文件,添加 KV 存储所需的权限:

确保你的 Deno 版本支持 --unstable 参数,因为 deno kv 目前还处于实验性阶段。

创建数据

我们将实现一个简单的 API 来创建新条目。首先,在项目根目录下创建一个名为 mod.ts 的文件。这个文件将包含我们的主要逻辑。

mod.ts 中,我们首先需要引入 Deno 的 KV API:

接下来,我们将定义一个处理 POST 请求的函数来创建新条目。这里我们假设我们要存储的是用户信息:

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

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

在这个函数中,我们首先从请求体中解析出用户数据,然后生成一个唯一的 ID,并使用 kv.atomic().set() 方法将用户信息保存到 KV 存储中。最后,返回一个带有创建成功状态码的响应。

读取数据

接下来,让我们实现读取操作。这包括获取单个用户信息以及列出所有用户信息的功能。

获取单个用户信息

为了获取特定用户的详细信息,我们可以定义如下函数:

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

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

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

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

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

这里我们从 URL 查询参数中获取用户 ID,然后尝试从 KV 存储中获取对应的用户信息。如果找不到用户,则返回 404 错误;否则,返回用户信息。

列出所有用户信息

要列出所有用户信息,可以定义以下函数:

此函数遍历所有以 "users" 开头的键值对,并返回一个包含所有用户信息的 JSON 响应。

更新数据

更新操作允许我们修改已存在的用户信息。我们可以定义一个类似于 updateUser 的函数来处理 PUT 请求:

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

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

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

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

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

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

这个函数首先检查是否提供了用户 ID,然后尝试获取现有用户信息。如果找到了用户,它将合并传入的新数据与旧数据,并更新 KV 存储中的记录。

删除数据

最后,我们需要实现删除功能。这可以通过一个简单的 DELETE 请求处理器来完成:

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

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

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

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

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

这个函数同样需要用户提供用户 ID。如果找到对应用户,则将其从 KV 存储中删除。

路由配置

现在我们已经有了所有的 CRUD 操作函数,接下来我们需要为这些操作配置路由。回到 mod.ts 文件,我们可以设置如下路由:

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

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

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

以上代码设置了基本的路由规则,根据不同的 HTTP 方法和路径执行相应的 CRUD 操作。

测试

现在你可以启动服务器并测试这些功能了:

使用 Postman 或其他工具进行测试,确保每个 CRUD 操作都能按预期工作。

这就是使用 Deno 实现基本 CRUD 操作的完整示例。希望这个教程对你有所帮助!

上一篇: Deno 构建REST API
下一篇: Deno OAuth2认证
纠错
反馈