如何在 Deno 中构建 Web 应用程序

前言

随着 Deno 的发布,不少前端开发者开始尝试使用 Deno,来构建 Web 应用程序。Deno 是一个现代的 JavaScript 和 TypeScript 运行时,它提供了很多 Node.js 没有的功能。本文将介绍如何在 Deno 中构建 Web 应用程序,包括如何使用 Deno 原生的 HTTP 模块,如何使用常见的 Web 框架等。

Deno 原生的 HTTP 模块

Deno 提供了作为标准库一部分的 HTTP 模块,您可以使用它来构建 Web 应用程序。该模块为您提供了创建 HTTP 服务器和客户端所需的所有功能,并且可以跨平台使用。以下是如何使用 Deno HTTP 模块创建简单的 Web 服务器的示例代码。

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

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

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

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

在这个示例中,我们导入了 Deno 提供的 serve() 函数来创建一个 HTTP 服务器,然后将其绑定到了本地主机上的 8080 端口。for await (const req of server) 循环一直等待来自客户端的请求。当请求到达时,我们只需要发送回一个简单的响应,响应的内容为“Hello Deno”。

Deno Web 框架

虽然原生的 HTTP 模块非常强大,但通常使用 Web 框架可以简化开发工作,并提供更多的功能。这里我们介绍一些常用的 Deno Web 框架。

Oak

Oak 是一个基于中间件和异步 I/O 的 Deno Web 框架,它的设计灵感来自于 Koa 框架。Oak 包含许多有用的功能,如路由、错误处理、HTTP 错误处理等。以下是使用 Oak 框架创建 Web 服务器的示例代码:

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

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

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

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

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

在这个示例中,我们创建了一个应用程序实例,然后添加了一个中间件,该中间件仅将“Hello Deno”字符串发送回响应。最后我们调用 await app.listen({ port: 8080 }) 来启动 Oak Web 服务器。

Attain

Attain 是一个 DJS(Deno JSON Server)库,它创建一个 RESTful Web 应用程序,无需数据库和路由配置。Attain 支持以 JSON 形式存储和获取数据,并支持请求验证和自定义响应。以下是使用 Attain 框架创建 Web 应用程序的示例代码:

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

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

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

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

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

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

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

在这个示例中,我们首先创建了一个应用程序实例。我们接着定义了一个变量 todos 用于存储待办事项的数组。然后我们定义了一个 GET 路由和一个 POST 路由来获取和创建待办事项。当我们对路由进行 GET 请求时,我们将 todos 数组作为响应的 JSON 发送回客户端。当我们对路由进行 POST 请求时,我们首先从请求中获取要添加的事项,然后将其添加到 todos 数组中,并将其作为 JSON 发送回客户端。

结论

本文介绍了如何在 Deno 中构建 Web 应用程序,包括使用 Deno HTTP 模块和常见的 Deno Web 框架。虽然原生的 HTTP 模块可以很好地完成工作,但使用 Web 框架可以更容易地完成 Web 应用程序开发,并提供更多的功能。大家可以酌情选择,根据需要选择适合自己的框架。

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