在前端开发中,我们常常需要向后端发送文件或者提交表单,这时就需要用到 multipart/form-data 格式。对于 Node.js 环境,使用 npm 包 request-multipart 可以方便地发送 multipart/form-data 格式的数据。本文将详细介绍 request-multipart 的使用方法。
安装和引入
使用 npm 安装 request-multipart:
npm install request-multipart --save
在需要发送 multipart/form-data 请求的文件中,使用 require 引入 request-multipart 模块:
const requestMultipart = require('request-multipart');
单文件上传
上传本地文件
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - -------------------------- ----- ---- - ---------------------------------------- ------------------- ------ -------------------------------------------------- ----- ------- ---- ----- -- - -- ------- ----- ------ ------------------ ---
首先,创建一个 form 对象,它会使用 request 模块来发送请求。接着,使用 fs 模块读取文件,将文件流添加到 form 中,并使用 requestMultipart.post 方法发送请求。
上传在线文件
const form = requestMultipart.create(); form.append('file', 'http://example.com/file.jpg'); requestMultipart.post('http://example.com/upload', form, (error, res, body) => { if (error) throw error; console.log(body); });
直接将文件的 URL 添加到 form 中即可。
多文件上传
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - -------------------------- ----- ----- - - - ---------- -------- --------- ------------------- -- - ---------- -------- --------- ------------------- - -- --- ------ ---- -- ------ - ----- ------ - ----------------------------------- --------------------------- -------- - -------------------------------------------------- ----- ------- ---- ----- -- - -- ------- ----- ------ ------------------ ---
需要上传多个文件时,可以将每个文件的 fieldName 和 filePath 封装在一个对象中,然后遍历这个数组,将每个文件的文件流添加到 form 中即可。
表单提交
const form = requestMultipart.create(); form.append('username', 'test'); form.append('password', '123456'); requestMultipart.post('http://example.com/login', form, (error, res, body) => { if (error) throw error; console.log(body); });
如果需要提交表单,同样可以使用 form.append 方法将表单数据添加到 form 中并发送请求即可。
总结
通过本文的介绍,我们了解了如何在 Node.js 中使用 request-multipart 包来发送 multipart/form-data 请求。无论是上传单个文件、多个文件还是提交表单,request-multipart 包都能够方便地实现。如果在开发中需要使用 multipart/form-data 格式的请求,不妨试试 request-multipart 包吧!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f389edadbf7be33b2566f73