npm 包 form-data 使用教程

阅读时长 3 分钟读完

介绍

form-data 是一个处理表单数据的 Node.js 模块,它使得在 Node.js 中发送 HTTP 请求并上传文件变得非常容易。该模块提供了一个 FormData 类,可以将表单数据与文件内容编码为 multipart/form-data 数据流,并将其发送到服务器。

安装

使用 npm 安装 form-data:

使用

基本用法

要使用 form-data,需要先创建一个新的实例,然后向其中添加表单字段和文件。最后,将 form-data 实例传递给请求库(如 axiosrequest)的 data 选项。

下面是一个示例,演示如何使用 form-data 向服务器上传一个文本字段和一个文件:

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

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

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

在上面的示例中,我们首先创建了一个 FormData 实例,并向其中添加了一个名为 username 的文本字段和一个名为 avatar 的文件字段。然后,我们使用 axios 发送一个 POST 请求,并将 form-data 实例传递给请求数据 (data) 选项。此外,我们还需要设置请求头(headers),以便告诉服务器我们正在发送的是一个 multipart/form-data 数据流。

添加文本字段

要添加一个文本字段,可以使用 append 方法:

其中,第一个参数是字段名称,第二个参数是字段值。

添加文件字段

要添加一个文件字段,可以使用 append 方法,并将文件的可读流传递给它:

在上面的示例中,我们使用 Node.js 的 fs 模块创建了一个可读流,然后将其传递给 append 方法。如果你想上传多个文件,可以多次调用 append 方法。

获取请求头

为了正确地向服务器发送 multipart/form-data 数据,还需要设置请求头。可以使用 getHeaders 方法来获取所有必需的请求头:

然后,你可以将这些请求头传递给请求库的 headers 选项。

总结

通过使用 form-data,我们可以轻松地在 Node.js 中向服务器上传表单数据和文件。该模块提供了一个方便的 API,使得操作表单数据变得非常容易。无论是处理用户上传的头像,还是上传文件以进行测试,都可以使用 form-data 来完成任务。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/42807

纠错
反馈