使用 Deno 和 Oak 创建一个可扩展的 Web 应用程序

阅读时长 5 分钟读完

Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,它由 Node.js 的创始人 Ryan Dahl 开发。Deno 与 Node.js 不同之处在于,它内置了 TypeScript 支持,启用了安全的默认设置,并且不需要使用 npm 包管理器。

Oak 是一个基于 Deno 的 Web 框架,它提供了一组工具和中间件,用于构建可扩展的 Web 应用程序。Oak 的设计目标是简单、轻量级和易于使用。

在本文中,我们将介绍如何使用 Deno 和 Oak 创建一个可扩展的 Web 应用程序。我们将从安装 Deno 开始,然后创建一个简单的 Web 服务器,并最终添加一些中间件和路由。

安装 Deno

要开始使用 Deno,您需要先安装它。您可以从 Deno 的官方网站 https://deno.land/ 下载适用于您的操作系统的安装程序。

安装完成后,您可以在终端中输入以下命令来验证 Deno 是否已正确安装:

您应该会看到类似以下的输出:

创建一个简单的 Web 服务器

现在,我们已经安装了 Deno,我们可以开始创建我们的第一个 Web 服务器了。我们将使用 Oak 框架来创建服务器。

首先,我们需要创建一个名为 server.ts 的文件,并将以下代码复制到文件中:

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

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

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

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

这段代码使用 oak 模块导入了 Application 类,并创建了一个新的 Application 实例。然后,我们使用 app.use() 方法将一个简单的中间件添加到应用程序中。该中间件将在每个请求上下文中设置响应正文为 "Hello, World!"。

最后,我们使用 app.listen() 方法指定服务器应该在哪个端口上运行。在本例中,我们将服务器运行在端口 8000 上。

要运行服务器,请在终端中输入以下命令:

这将启动服务器,并在终端中输出类似以下的内容:

现在,我们可以在浏览器中访问 http://localhost:8000,看到 "Hello, World!" 的响应内容。

添加中间件和路由

现在我们已经创建了一个简单的 Web 服务器,我们可以开始添加一些中间件和路由了。我们将添加一个记录请求时间的中间件,并创建一个路由,用于处理 GET 请求并返回一个 JSON 响应。

首先,我们需要导入 oak 模块中的 logger 中间件。将以下代码添加到 server.ts 文件的开头:

然后,我们可以将 logger 中间件添加到应用程序中。将以下代码添加到 app 实例的创建之后:

现在,我们已经添加了一个记录请求时间的中间件。每次请求时,该中间件将在终端中输出类似以下的内容:

接下来,我们将创建一个路由,用于处理 GET 请求并返回一个 JSON 响应。将以下代码添加到 app.use() 方法之后:

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

这段代码检查请求方法和路径是否与我们所需的匹配。如果是,它将设置响应正文为包含几个示例数据的 JSON 对象。

现在,我们已经添加了一个路由,我们可以在浏览器中访问 http://localhost:8000/api/data,看到 JSON 响应内容。

结论

在本文中,我们介绍了如何使用 Deno 和 Oak 创建一个可扩展的 Web 应用程序。我们从安装 Deno 开始,然后创建了一个简单的 Web 服务器,并最终添加了一些中间件和路由。

Deno 和 Oak 提供了一组工具和中间件,使得构建 Web 应用程序变得更加简单、轻量级和易于使用。它们还提供了 TypeScript 支持和安全的默认设置,使得开发过程更加可靠和安全。

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

纠错
反馈