前言
Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,由 Node.js 的创始人 Ryan Dahl 开发。与 Node.js 不同,Deno 内置了模块化的标准库,不再需要 npm 作为包管理器,同时提供了更好的安全性和可靠性。
Deno 内置了支持 HTTP 协议的服务端和客户端模块,本文将介绍如何使用 Deno 实现 HTTP 服务端和客户端。
HTTP 服务端
在 Deno 中,HTTP 服务端的实现使用 serve
模块:
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 服务端,回调函数中的 req
是一个 HTTP 请求对象,可以通过它获取请求的详细信息,并通过 respond
函数返回 HTTP 响应。
在这个例子中,我们只是简单地返回了一个包含 "Hello World" 的 HTTP 响应。
Deno 的标准库还提供了更灵活的 HTTP 协议处理方式,可以通过 Server
类来实现自定义的 HTTP 服务端:
-- -------------------- ---- ------- ------ - ------- --------- ------- - ---- --------------------------------------- ----- ------ - --- -------- ----- -------- ----- ------------ --------- ----------------- - ------ - ----- ------ --------- -- - --- -------------------------------------- ----- ------------------------
在这个例子中,我们通过 Server
类创建了一个 HTTP 服务端,通过 handler
方法可以自定义如何处理 HTTP 请求,返回一个 HTTP 响应实例。
HTTP 客户端
在 Deno 中,HTTP 客户端的实现使用 fetch
函数:
const res = await fetch("https://example.com/"); const body = await res.text(); console.log(body);
通过 fetch
函数可以向指定的 URL 发送 HTTP 请求,获取响应内容。
与 Node.js 的 http.request
一样,fetch
函数也可以通过传递选项参数来控制 HTTP 请求的方式:
-- -------------------- ---- ------- ----- --- - ----- ----------------------------- - ------- ------- ----- ---------------- ---- ----- --- -------- - --------------- ------------------ - --- ----- ---- - ----- ----------- ------------------
在这个例子中,我们通过 fetch
函数发送了一个 POST 请求,请求体是一个 JSON 格式的对象,同时设置了请求头的 content-type。
结语
Deno 提供了一种新的方式来实现 HTTP 服务端和客户端,与 Node.js 不同,它内置了模块化的标准库,提供了更高的安全性和可靠性。
通过本文的介绍,你可以了解如何使用 Deno 来实现 HTTP 服务端和客户端,希望能够对你的开发工作有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/679751e2504e4ea9bde6d2fd