Deno 是一种新型的 JavaScript 运行时环境,它可以在浏览器之外运行 JavaScript 代码。Deno 内置了 HTTP 模块,使得开发者可以使用 JavaScript 处理 HTTP 请求和响应。本文将介绍如何在 Deno 中处理 HTTP 请求和响应,并提供相关示例代码。
处理 HTTP 请求
在 Deno 中处理 HTTP 请求,需要使用 serve()
方法创建一个 HTTP 服务器。该方法接收一个回调函数,用于处理 HTTP 请求。回调函数会接收一个 Request
对象,该对象包含 HTTP 请求的相关信息,如请求头、请求体等。下面是一个简单的示例:
import { serve } from 'https://deno.land/std/http/server.ts'; const server = serve({ port: 8000 }); for await (const req of server) { console.log(req.url); req.respond({ body: 'Hello World\n' }); }
在上面的示例中,我们使用 serve()
方法创建了一个监听 8000 端口的 HTTP 服务器。当有请求到达时,会执行回调函数,并输出请求的 URL。最后,我们通过 req.respond()
方法响应请求,返回一个字符串 "Hello World"。
下面是一个更加复杂的示例,展示如何处理 POST 请求,并解析请求体中的 JSON 数据。
// javascriptcn.com 代码示例 import { serve } from 'https://deno.land/std/http/server.ts'; const server = serve({ port: 8000 }); for await (const req of server) { if (req.method === 'POST') { const body = await req.json(); console.log(body); req.respond({ body: JSON.stringify(body) }); } else { req.respond({ body: 'Hello World\n' }); } }
在上面的示例中,我们首先判断请求方法是否为 POST。如果是 POST 请求,我们使用 req.json()
方法解析请求体中的 JSON 数据,并输出到控制台。最后,我们通过 JSON.stringify()
方法将 JSON 数据转换为字符串,并返回给客户端。
处理 HTTP 响应
在 Deno 中处理 HTTP 响应,需要使用 respond()
方法。该方法接收一个 Response
对象,该对象包含 HTTP 响应的相关信息,如响应头、响应体等。下面是一个简单的示例:
import { serve } from 'https://deno.land/std/http/server.ts'; const server = serve({ port: 8000 }); for await (const req of server) { req.respond({ body: 'Hello World\n' }); }
在上面的示例中,我们使用 req.respond()
方法响应请求,并返回一个字符串 "Hello World"。
下面是一个更加复杂的示例,展示如何设置响应头和响应体。
// javascriptcn.com 代码示例 import { serve } from 'https://deno.land/std/http/server.ts'; const server = serve({ port: 8000 }); for await (const req of server) { const headers = new Headers(); headers.set('Content-Type', 'application/json'); req.respond({ headers, body: JSON.stringify({ message: 'Hello World' }), }); }
在上面的示例中,我们首先创建了一个 Headers
对象,并设置了 Content-Type
响应头为 application/json
。然后,我们通过 JSON.stringify()
方法将 JSON 数据转换为字符串,并设置为响应体。最后,我们通过 req.respond()
方法响应请求,并返回设置好的响应头和响应体。
总结
本文介绍了如何在 Deno 中处理 HTTP 请求和响应。我们首先使用 serve()
方法创建了一个 HTTP 服务器,并通过回调函数处理请求。然后,我们介绍了如何设置响应头和响应体,以及如何解析 POST 请求中的 JSON 数据。这些技巧和方法对于开发 Deno 应用程序非常有用,可以提高开发效率和代码质量。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657589e8d2f5e1655dec70c6