繁体   English   中英

如何使用 superagent 发送 FormData 对象

[英]How to use superagent to send a FormData object

我正在向另一个服务器执行 API 请求,然后是另一个请求,我需要将文件传递到该服务器。

做第一个既好又容易。 它看起来像这样:

if (myFile) {
    const data = new FormData()
    data.append('myFile', myFile, myFile.name)
    myFile = data
  }

isomorphicFetch(`${MY_ENDPOINT}`, {
        method: 'PATCH',
        body: myFile
      })

现在,在服务器端,我需要将它传递给另一台服务器。 我正在使用超级代理。 但是我似乎在这个过程中丢失了文件。 下面是代码目前的样子:

const fileField = Object.keys(data).pop()
if (fileField === 'myFile') {
  res = await request
    .patch(`${MY_OTHER_ENDPOINT}`)
    .send(data)
    .query(query)
}

注意data是上一个请求的主体, FormData对象显示为空对象,所以我不知道从这里开始做什么。

在我的另一台服务器上,我的文件返回为undefined ,但是如果我直接从客户端发出请求,它会按预期进行。 那么如何将 FormData 对象从一个服务器应用程序转发到另一个?

文件通常作为 Multipart 请求的一部分发布到服务器。

Superagent 支持多部分请求,如下所示:

request
  .post('/upload')
  .attach('image1', 'path/to/felix.jpeg')
  .attach('image2', imageBuffer, 'luna.jpeg')
  .field('caption', 'My cats')
  .then(callback);

更多信息可以在他们的文档中找到: Superagent Docs - Multipart requests

具体到您的示例,您要确保您的服务器正在接收文件,然后使用附加功能将文件放入您的请求中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM