Javascript 通过fetch和formData将文件发送到Nodejs服务器会返回req.files null

Javascript 通过fetch和formData将文件发送到Nodejs服务器会返回req.files null,javascript,node.js,forms,express,multipartform-data,Javascript,Node.js,Forms,Express,Multipartform Data,通过将action属性和多部分enctypes添加到html表单中,我总是将文件与表单数据一起发送。最近我需要使用fetch发送表单,并使用newformdata()可以读取给定html表单的所有字段和文件。但是在nodejs端,req.files返回null。当我使用formactionattribute时,它工作得非常好 客户端 let formData=new formData(document.getElementById('additem'); let response=wait fe

通过将action属性和多部分enctypes添加到html表单中,我总是将文件与表单数据一起发送。最近我需要使用fetch发送表单,并使用
newformdata()
可以读取给定html表单的所有字段和文件。但是在
nodejs
端,req.files返回
null
。当我使用form
action
attribute时,它工作得非常好

客户端

let formData=new formData(document.getElementById('additem');
let response=wait fetch(`${window.location.href}/inventory`{
方法:“张贴”,
正文:formData
});
在服务器端,我只是在使用
expressbodyparser
(现在是默认设置),并尝试使用
req.files
访问文件; 我知道我可以使用
multer
强大的
,但我想知道是否有一种方法可以使它与我的atm一起工作。
谢谢。

如果要发送需要指定的文件,您的
内容类型在哪里
在这些标题上,默认情况下内容类型为application/json

Mozilla文档中有一个很好的例子:

在服务器端,我只是使用ExpressBodyParser(现在是默认的),并尝试使用req.files访问文件;我知道我可以使用multer或Fornighous,但我想知道是否有一种方法可以让我的atm机工作

不,没有<代码>表单数据
对象生成多部分实体

这不处理多部分实体,因为它们复杂且 典型的大型自然环境。对于多部分实体,您可能感兴趣 以下模块:

  • 接线员和接线员
  • 多方和连接多方
  • 可怕的
  • 穆特

fetch
将在传递
FormData
对象时自动设置正确的内容类型。您无法手动设置FormData对象的内容类型,因为您不知道强制的
边界
参数需要具有什么值。噢!没错,那你怎么会有这样的问题啊。我已经读到,如果使用formData定义内容类型,可能会导致问题。这与设置边界有关。@Ernesto-他们遇到了问题,因为他们使用的主体解析器不支持多部分请求。主体解析器不处理文件上载的多部分上载。