在现代 Web 开发中,处理表单数据是非常基础和常见的需求。在 Deno 中,处理表单数据也是一样的。本文将向您介绍如何在 Deno 中处理表单数据。本文将涵盖以下主题:
- Deno 中处理表单数据的方式
- 如何从请求中提取表单数据
- 处理 multipart/form-data 格式的表单数据
- 示例代码
Deno 中处理表单数据的方式
Deno 提供了一个名为 std/http
的标准库来处理 HTTP 请求和响应。在使用 Deno 处理表单数据时,我们需要通过这个标准库来获取和解析表单数据。
如何从请求中提取表单数据
在 Deno 中,std/http
的 serve()
函数可以用来创建 HTTP 服务器。当客户端向服务器发送 HTTP 请求时,我们可以从请求中获取表单数据。
考虑以下示例代码:
------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- --- ----- ------ ------- -- ------- - ----- ---- - ----- --------------- ------------------ ----------------- ----- ------ ------ --- -
这个示例代码中,我们创建了一个 HTTP 服务器,并使用 serve()
函数来监听端口 8080 上的请求。当客户端发送一个请求时,我们可以使用 await request.text()
来获取请求体的文本。我们将文本输出到控制台,并发送一个简单的响应。当您运行此示例代码并在您的浏览器中访问 http://localhost:8080
时,您将在命令行中看到您的请求体。
处理 multipart/form-data 格式的表单数据
默认情况下,HTTP 请求提交表单数据时,数据将使用 URL 编码方式进行编码。但是,当表单数据包含文件时,我们必须使用 multipart/form-data 编码方式。在 Deno 中,我们可以使用 fetch()
接口来发送包含表单数据的请求。
考虑以下示例代码:
----- ---- - --- ----------- ----------------------- -------- --------------------- ------------ ----- ------------------------------ - ------- ------- ----- ----- ---
在此代码片段中,我们创建了一个 FormData 对象,并将用户名和文件添加到该对象中。我们使用 fetch()
函数将数据提交到我们之前创建的服务器。
当使用 multipart/form-data 编码方式时,我们需要对请求的 body 进行特殊处理以提取表单数据。在 Deno 中,我们可以用 encoders
模块中的 MultipartReader
读取 multipart/form-data 格式的请求内容。考虑以下示例代码:
------ - ----- - ---- --------------------------------------- ------ - --------------- - ---- ------------------------------------ ----- ------ - ------- ----- ---- --- --- ----- ------ ------- -- ------- - ----- ----------- - ------------------------------------ -- ------------ -- -------------------------------------------- - ----- -------- - ---------------------------------------- ----- ------ - --- ----------------------------- ---------- ----- -------- - ----- ------------------ ---------------------- - ---- - ----- ---- - ----- --------------- ------------------ - ----------------- ----- ------ ------ --- -
在此代码片段中,我们首先检查请求的 content-type 是否为 multipart/form-data。如果是,我们从请求的头中获取边界,并使用 new MultipartReader(request.body, boundary)
创建一个 MultipartReader
对象。该对象提供了一个 readForm()
方法,可以返回使用 multipart/form-data 编码方式的表单数据。我们将表单数据输出到控制台。
示例代码
考虑以下代码片段,它演示了如何处理包含文件的表单数据:
------ - ----- - ---- --------------------------------------- ------ - --------------- - ---- ------------------------------------ ----- ------ - ------- ----- ---- --- --- ----- ------ ------- -- ------- - ----- ----------- - ------------------------------------ -- ------------ -- -------------------------------------------- - ----- -------- - ---------------------------------------- ----- ------ - --- ----------------------------- ---------- ----- -------- - ----- ------------------ ---------------------- - ---- - ----- ---- - ----- --------------- ------------------ - ----------------- ----- ------ ------ --- -
在此示例代码中,我们从请求中提取了表单数据,并将其输出到控制台。使用此示例代码,您可以处理包含文件和其他表单数据的请求。
结论
本文向您介绍了如何在 Deno 中处理表单数据。现代 Web 应用程序需要处理表单数据,本文为您提供了相关指导。强烈建议您在了解了本文所述后尝试使用 Deno 处理表单数据。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67385df8317fbffedf0ff219