Javascript 将FormData对象作为node.js服务器接收

Javascript 将FormData对象作为node.js服务器接收,javascript,jquery,html,ajax,node.js,Javascript,Jquery,Html,Ajax,Node.js,我有一个带有两个按钮以及其他文本输入区域的HTML表单,我有一些前端javascript代码来处理提交。在提交时,我创建了一个FormData对象并将文件存储在其中。然后我通过jqueryajax请求将其发送到node.js服务器。然而,这就是问题所在——当我尝试访问服务器中的文件时,该文件始终未定义——我尝试使用req.body、req.files、req.file访问它,但它始终未定义。这是ajax请求的问题,还是我接收它的方式的问题 上载文件按钮: <input id="elemen

我有一个带有两个按钮以及其他文本输入区域的HTML表单,我有一些前端javascript代码来处理提交。在提交时,我创建了一个FormData对象并将文件存储在其中。然后我通过jqueryajax请求将其发送到node.js服务器。然而,这就是问题所在——当我尝试访问服务器中的文件时,该文件始终未定义——我尝试使用req.body、req.files、req.file访问它,但它始终未定义。这是ajax请求的问题,还是我接收它的方式的问题

上载文件按钮:

<input id="element_3" name="element_3" class="element file required" accept="application/pdf" type="file"/>
相关服务器代码:

app.post('/addPdf', function(req, res) {
    console.log("file: " + req.body.pdf);
});
编辑: 以下是我尝试使用multer时的相关代码:

app.post('/addPdf', [multer({dest: "./uploads/"}).single('avatar'), function(req, res) {
    console.log("file: " + req.file);
}]);

console.logreq.body为您提供了什么?您使用的是什么中间件?console.logreq.body为我提供了UnfineDI使用multer,但这也不起作用,所以现在我不使用任何。您必须使用一些中间件,否则将不会填充req.body等。如果您正在使用multer,也许您应该发布使用multer时的代码。
app.post('/addPdf', function(req, res) {
    console.log("file: " + req.body.pdf);
});
app.post('/addPdf', [multer({dest: "./uploads/"}).single('avatar'), function(req, res) {
    console.log("file: " + req.file);
}]);