express - 如何使用 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,内部服务器错误。我究竟做错了什么?
解决方案
我可以通过如下更改获取请求来完成这项工作:
const url = 'myurl'
const opts = {
method: 'POST',
body: form,
headers: {...form.getHeaders()}
}
const response = await fetch(url, opts)
const json = await response.json();
推荐阅读
- javascript - 检查并返回必填字段
- python - 熊猫根据行值(条件)创建新列
- html - 反应组件中的功能
- php - 如何在常量文件 laravel 中访问 $_SERVER['SERVER_NAME']
- python - pyqt按需加载graphicsspixmapitem
- c# - 在客户端计算机上运行的 Crystal Reports(没有 CRRuntime)
- delphi - 安装 Delphi 包会导致错误丢失 BDS.INI
- ibm-cloud-infrastructure - 如何在 SoftLayer 票证上设置附加设备的密码
- node.js - package-lock.json 会阻止更新吗?
- ruby-on-rails - Ruby on Rails 5 Action Mailer 的错误