Javascript 如何在node/express应用程序的服务器端检索使用ajax发送的文件

Javascript 如何在node/express应用程序的服务器端检索使用ajax发送的文件,javascript,html,node.js,Javascript,Html,Node.js,我有一个Node/Express应用程序,我想用表单发送一个文件,我想用ajax发送它,这样我就可以处理服务器响应 到目前为止,我的表格是: <form method='POST' enctype='multipart/form-data' id='excelform'> <input type='file' id='target_file' name='target_file' requi

我有一个Node/Express应用程序,我想用表单发送一个文件,我想用ajax发送它,这样我就可以处理服务器响应

到目前为止,我的表格是:

                    <form method='POST' enctype='multipart/form-data' id='excelform'>
                        <input type='file' id='target_file' name='target_file' required>
                    </form>
                    <button class='btn btn-menu3 align-self-end' onClick='excel_email9f();'>Enviar</button>
我可以访问文件及其属性,如名称

在服务器端,我有这个路由

app.post('/Excelemail9f',function(req,res){

    // checking req.files is empty or not
    if (Object.keys(req.files).length == 0) {
        return res.status(400).send('No files were uploaded.');
    }
    console.log('name: ' + req.files.target_file.name);
    let target_file = req.files.target_file;

    // target_file.mv(path, callback)
    target_file.mv(path.join(__dirname, 'uploads', target_file.name), (err) => {
        if (err) throw err;

        res.send(JSON.stringify({q0 : 0})); 
    })

})
如何在服务器端访问该文件,我使用
req.files.target\u file
,但出现以下错误:


TypeError:无法读取未定义的属性“name”

您正在将数据作为
FormData
对象发布,但您正在引用HTML输入元素的ID作为文件名。通过调用
data.append('file',file),填充
FormData
对象
,因此您需要通过
req.files.file
而不是
req.files.target\u file
来引用它,您可以发布
console.log('name:',req.files)的输出吗
app.post('/Excelemail9f',function(req,res){

    // checking req.files is empty or not
    if (Object.keys(req.files).length == 0) {
        return res.status(400).send('No files were uploaded.');
    }
    console.log('name: ' + req.files.target_file.name);
    let target_file = req.files.target_file;

    // target_file.mv(path, callback)
    target_file.mv(path.join(__dirname, 'uploads', target_file.name), (err) => {
        if (err) throw err;

        res.send(JSON.stringify({q0 : 0})); 
    })

})