如何在 Deno 中实现 HTTP 服务器

阅读时长 5 分钟读完

Deno 是一种新兴的 JavaScript 和 TypeScript 运行时环境,它提供了更好的安全性和可维护性,同时也支持在浏览器之外部署 JavaScript 应用程序。在本文中,我们将介绍如何在 Deno 中实现 HTTP 服务器,以便您可以轻松地构建动态 Web 应用程序。

安装 Deno

在开始之前,您需要安装 Deno。您可以从 Deno 的官方网站 下载并安装它。安装完成后,您可以在终端中运行 deno --version 命令,以验证 Deno 是否正确安装。

创建 HTTP 服务器

我们将使用 Deno 标准库中的 http 模块来创建一个 HTTP 服务器。下面是一个简单的 HTTP 服务器示例代码:

在这个示例中,我们使用 serve() 函数创建了一个 HTTP 服务器,并将其绑定到本地主机上的 8000 端口。然后,我们使用 console.log() 函数在控制台输出服务器的 URL。最后,我们使用 for await 循环来监听来自客户端的 HTTP 请求,并使用 req.respond() 函数来发送响应。

处理 HTTP 请求

现在,我们已经创建了一个简单的 HTTP 服务器。但是,我们需要处理客户端发送的 HTTP 请求,并根据请求的 URL 和方法来执行相应的操作。下面是一个更完整的 HTTP 服务器示例代码:

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

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

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

在这个示例中,我们使用 ifelse 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

纠错
反馈