Deno 是一个现代化的 JavaScript 和 TypeScript 运行时,它的目标是成为一个安全、可靠且有弹性的运行时环境。在使用 Deno 开发应用时,处理 HTTP 请求响应是必不可少的一项技能。本文将详细介绍在 Deno 中如何处理 HTTP 请求响应。
Deno 中处理 HTTP 请求响应的基本操作
在 Deno 中,可以使用标准的 TypeScript 类来处理 HTTP 请求响应,示例如下:
import { serve } from "https://deno.land/std/http/server.ts"; const s = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of s) { req.respond({ body: "Hello World\n" }); }
这段代码创建了一个 HTTP 服务器,该服务器侦听在本地主机的 8000 端口上。每当有一个 HTTP 请求到达服务器时,它将发送一个 "Hello World" 响应。
此代码使用了 Deno 标准库中的 serve
方法来创建 HTTP 服务器。该方法接受一个选项对象,用于配置服务器的端口、主机名等参数。对于每个收到的请求,我们使用 for-await-of
来异步迭代每个请求,然后调用 req.respond
方法来发送响应。
操作 HTTP 请求头和响应头
在实际的应用中,可能需要设置 HTTP 请求头或响应头。在 Deno 中,可以使用标准 TypeScript 类库中的 Headers
类来操作 HTTP 请求头或响应头。示例如下:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- - - ------- ----- ---- --- -------------------------------------- --- ----- ------ --- -- -- - ----- ------- - --- ---------- --------------------------- ------------- ------------- ------- ---- -------- ----- ---------- ------------ --- -
在此示例中,我们创建了一个名为 headers
的新 Headers 实例,并使用 .set
方法来设置名称为 "Content-Type" 的请求头。然后我们将Headers 实例传递给 req.respond
方法中作为 headers
选项的值。
发送 JSON 格式的响应
很多时候,我们需要以 JSON 格式发送响应。在Den中,我们可以使用 JSON.stringify
方法将对象转换为 JSON 字符串。示例如下:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- - - ------- ----- ---- --- -------------------------------------- --- ----- ------ --- -- -- - ----- ------- - --- ---------- --------------------------- -------------------- ----- ---- - ---------------- ---- ------ ------ --- ------------- ------- ---- -------- ----- --- -
在此示例中,我们将 HTTP 响应的内容设置为 JSON 格式 ,并使用 .set
方法设置 header 的 Content-Type 为 application/json。
处理 404 错误
在实际应用中,可能会发生 404 错误。在 Deno 中,可以通过在 req.respond()
方法中指定 status 为 404 来处理 404 错误。示例如下:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- - - ------- ----- ---- --- -------------------------------------- --- ----- ------ --- -- -- - -- -------- -- ------- - ------------- ------- ---- ----- ---- ------ --- - ---- - ------------- ----- ------ -------- --- - -
在此代码示例中,我们检查请求 URL 是否为 "/404"。如果是,我们将响应的状态设置为 404,并将响应内容设置为 "Not Found"。如果不是,我们将响应内容设置为 "Hello World"。
总结
在本文中,我们详细介绍了在 Deno 应用中如何处理 HTTP 请求响应。我们学习了 Deno 中处理 HTTP 请求响应的基本操作,操作 HTTP 请求头和响应头,以及如何发送 JSON 格式的响应和处理 404 错误。希望这些内容对您开发 Deno 应用有帮助,并为您提供指导意义的启示。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6481285c48841e9894093ae9