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 是否已正确安装:
deno --version
您应该会看到类似以下的输出:
deno 1.14.2 (release, x86_64-apple-darwin) v8 9.4.146.19 typescript 4.4.3
创建一个简单的 Web 服务器
现在,我们已经安装了 Deno,我们可以开始创建我们的第一个 Web 服务器了。我们将使用 Oak 框架来创建服务器。
首先,我们需要创建一个名为 server.ts
的文件,并将以下代码复制到文件中:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ----- --- - --- -------------- ------------- -- - ----------------- - ------- -------- --- ----- ------------ ----- ---- ---
这段代码使用 oak
模块导入了 Application
类,并创建了一个新的 Application
实例。然后,我们使用 app.use()
方法将一个简单的中间件添加到应用程序中。该中间件将在每个请求上下文中设置响应正文为 "Hello, World!"。
最后,我们使用 app.listen()
方法指定服务器应该在哪个端口上运行。在本例中,我们将服务器运行在端口 8000 上。
要运行服务器,请在终端中输入以下命令:
deno run --allow-net server.ts
这将启动服务器,并在终端中输出类似以下的内容:
listening on 0.0.0.0:8000
现在,我们可以在浏览器中访问 http://localhost:8000,看到 "Hello, World!" 的响应内容。
添加中间件和路由
现在我们已经创建了一个简单的 Web 服务器,我们可以开始添加一些中间件和路由了。我们将添加一个记录请求时间的中间件,并创建一个路由,用于处理 GET 请求并返回一个 JSON 响应。
首先,我们需要导入 oak
模块中的 logger
中间件。将以下代码添加到 server.ts
文件的开头:
import { Application, logger } from "https://deno.land/x/oak/mod.ts";
然后,我们可以将 logger
中间件添加到应用程序中。将以下代码添加到 app
实例的创建之后:
app.use(logger.logger);
现在,我们已经添加了一个记录请求时间的中间件。每次请求时,该中间件将在终端中输出类似以下的内容:
2022-01-01 00:00:00 INFO oak: GET http://localhost:8000/ 200 2ms
接下来,我们将创建一个路由,用于处理 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