首页 > 解决方案 > 如何使用 node-fetch 转发多部分表单请求

问题描述

我正在尝试通过节点服务器转发 graphql 上传文件。在我的 graphql 解析器中,我有:

  async uploadFile ({ file }) {
   const { createReadStream, filename } = await file;
   const form = new FormData();
   const fileBuffer = Buffer.from(JSON.stringify(file), 'utf-8');
   
    form.append('file', fileBuffer, {
      contentType: 'multipart/form-data',
      filename: filename,
  });
  
   return fetch(`/someurl`, form)
    .then(handleSuccess)
    .catch(handleError)
  }

我只是想转发文件而不将其保存到上传目录。错误是 500,内部服务器错误。我究竟做错了什么?

标签: expressgraphqlmultipartform-datanode-fetch

解决方案


我可以通过如下更改获取请求来完成这项工作:

const url = 'myurl'
const opts = {
      method: 'POST',
      body: form,
      headers: {...form.getHeaders()}
    }
    
 const response = await fetch(url, opts)
 const json = await response.json();


推荐阅读