Deno 是一种新兴的 JavaScript 和 TypeScript 运行时环境,它提供了更好的安全性和可维护性,同时也支持在浏览器之外部署 JavaScript 应用程序。在本文中,我们将介绍如何在 Deno 中实现 HTTP 服务器,以便您可以轻松地构建动态 Web 应用程序。
安装 Deno
在开始之前,您需要安装 Deno。您可以从 Deno 的官方网站 下载并安装它。安装完成后,您可以在终端中运行 deno --version
命令,以验证 Deno 是否正确安装。
创建 HTTP 服务器
我们将使用 Deno 标准库中的 http
模块来创建一个 HTTP 服务器。下面是一个简单的 HTTP 服务器示例代码:
import { serve } from "https://deno.land/std/http/server.ts"; const server = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of server) { req.respond({ body: "Hello World\n" }); }
在这个示例中,我们使用 serve()
函数创建了一个 HTTP 服务器,并将其绑定到本地主机上的 8000 端口。然后,我们使用 console.log()
函数在控制台输出服务器的 URL。最后,我们使用 for await
循环来监听来自客户端的 HTTP 请求,并使用 req.respond()
函数来发送响应。
处理 HTTP 请求
现在,我们已经创建了一个简单的 HTTP 服务器。但是,我们需要处理客户端发送的 HTTP 请求,并根据请求的 URL 和方法来执行相应的操作。下面是一个更完整的 HTTP 服务器示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- -------------------------------------- --- ----- ------ --- -- ------- - -- ----------- --- ----- -- ------- --- ---- - ------------- ----- ------ -------- --- - ---- -- ----------- --- ----- -- ------- --- --------- - ------------- ----- ------ ----- --- - ---- - ------------- ------- ---- ----- ---- -------- --- - -
在这个示例中,我们使用 if
和 else if
语句来检查请求的 URL 和方法,并根据情况发送相应的响应。如果请求的 URL 是根路径 /
,我们发送一个 Hello World
的响应;如果请求的 URL 是 /about
,我们发送一个 About Us
的响应;否则,我们发送一个 Not Found
的响应,并设置响应的状态码为 404。
处理 POST 请求
除了 GET 请求之外,我们还可以处理 POST 请求。为了处理 POST 请求,我们需要使用 await
关键字来等待客户端发送的数据。下面是一个处理 POST 请求的 HTTP 服务器示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- -------------------------------------- --- ----- ------ --- -- ------- - -- ----------- --- ----- -- ------- --- ---- - ------------- ----- ------ -------- --- - ---- -- ----------- --- ------ -- ------- --- ---------- - ----- ---- - ----- ----------------------- ----- -------- - --- --------------------------- ------------- ----- ----- ----- -------------- --- - ---- - ------------- ------- ---- ----- ---- -------- --- - -
在这个示例中,我们使用 await
关键字等待客户端发送的数据,并将其存储在变量 body
中。然后,我们使用 TextDecoder
类将 body
转换为可读的字符串。最后,我们将 formData
字符串发送回客户端作为响应。
结论
在本文中,我们介绍了如何在 Deno 中实现 HTTP 服务器。我们使用了 Deno 标准库中的 http
模块来创建 HTTP 服务器,并演示了如何处理 GET 和 POST 请求。希望这篇文章能够对您有所帮助,让您更好地理解如何使用 Deno 构建动态 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6761355d03c3aa6a560b2d15