使用 Deno 构建 RESTful API: 实现 CRUD 操作

阅读时长 9 分钟读完

介绍

Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它具有安全性、可靠性和性能等优点。在本文中,我们将使用 Deno 构建一个 RESTful API,实现 CRUD 操作。RESTful API 是现代 Web 应用程序的核心,它提供了一种标准化的方式来访问和操作数据。本文旨在向读者展示如何使用 Deno 和一些常用的库来创建 RESTful API。

环境配置

在开始之前,我们需要安装 Deno 运行时环境。你可以访问 Deno 的官方网站 https://deno.land/,按照指示安装 Deno。安装完成后,你可以在终端中输入以下命令来检查是否安装成功:

我们还需要安装一些常用的库,这些库可以帮助我们更轻松地构建 RESTful API。在本文中,我们将使用以下库:

  • oak:一个基于中间件的 Web 框架,类似于 Express。
  • deno-postgres:一个 PostgreSQL 数据库驱动程序。
  • dotenv:一个用于加载环境变量的库。

你可以使用以下命令来安装这些库:

实现 CRUD 操作

创建数据库

首先,我们需要创建一个 PostgreSQL 数据库。你可以使用以下命令来创建一个名为 deno_api 的数据库:

接下来,我们需要创建一个名为 users 的表,用于存储用户数据。你可以使用以下 SQL 语句来创建表:

连接数据库

在我们的应用程序中,我们需要连接到 PostgreSQL 数据库。为了保护我们的数据库凭据,我们将使用 dotenv 库来加载环境变量。在项目根目录下创建一个名为 .env 的文件,并添加以下内容:

接下来,我们将使用 deno-postgres 库来连接到数据库。在 app.ts 文件中添加以下内容:

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

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

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

创建路由

我们将使用 oak 框架来创建 RESTful API 的路由。在 app.ts 文件中添加以下内容:

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

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

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

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

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

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

在这个例子中,我们创建了一个名为 app 的应用程序,使用 app.use() 方法添加了三个中间件。第一个中间件用于记录请求的方法、URL 和响应时间。第二个中间件用于计算响应时间。第三个中间件返回一个简单的“Hello World!”消息。

实现 CRUD 操作

我们将使用以下路由来实现 CRUD 操作:

  • GET /users:获取所有用户。
  • GET /users/:id:获取指定 ID 的用户。
  • POST /users:创建一个新用户。
  • PUT /users/:id:更新指定 ID 的用户。
  • DELETE /users/:id:删除指定 ID 的用户。

app.ts 文件中添加以下路由:

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

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

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

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

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

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

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

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

在这个例子中,我们使用 Router 类来创建路由。我们实现了五个路由,每个路由都对应一个 CRUD 操作。我们使用 client.query() 方法来执行 SQL 语句,从而实现对数据库的操作。

运行应用程序

现在,我们已经实现了一个简单的 RESTful API,可以进行 CRUD 操作。要运行应用程序,请在终端中输入以下命令:

这将启动应用程序,并在本地计算机的 8000 端口上运行。你可以在浏览器中访问 http://localhost:8000/users 来获取所有用户的列表。

结论

在本文中,我们使用 Deno 和一些常用的库来创建 RESTful API,实现 CRUD 操作。我们展示了如何连接到 PostgreSQL 数据库、创建路由和实现 CRUD 操作。这些技术可以帮助你更轻松地构建现代 Web 应用程序,提高开发效率和性能。

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

纠错
反馈