Javascript Can';无法从react js上传文件到express js

Javascript Can';无法从react js上传文件到express js,javascript,node.js,reactjs,express,file-upload,Javascript,Node.js,Reactjs,Express,File Upload,我想从React中开发的前端上传文件,并在Expressjs中获取上传的文件 下面是我上传文件时React side的代码片段: handleUploadFile(ev) { ev.preventDefault(); var a6 = "File"; const data = new FormData(); data.append('file', this.uploadInput.files[0]); data.append('fileName', a

我想从React中开发的前端上传文件,并在Expressjs中获取上传的文件

下面是我上传文件时React side的代码片段:

handleUploadFile(ev) {

    ev.preventDefault();

    var a6 = "File";
    const data = new FormData();
    data.append('file', this.uploadInput.files[0]);
    data.append('fileName', a6); 

    fetch('http://localhost:4000/api/addDcuments/upload', {
        method: 'POST',
        body: {data},
        json: true,
        headers: { "Authorization": cookie.load('userToken') }
        }).then((response) => {
        response.json().then((body) => {
        this.setState({ imageURL: `http://localhost:4000/${body.file}` });
        });
    });
}
在上面的代码中,我采用了这种形式,并在其onSubmit事件上调用了handleUploadFile函数

现在,下面是我的后端express js代码,我将在其上获得上传的文件:

export function uploadDocument(req, res, next) {
console.log(JSON.stringify(req.body));
let imageFile = req.files.file;
var ext = path.extname(imageFile.name)

    if(imageFile.mimetype == "application/pdf" ||imageFile.mimetype == "application/octet-stream"){
        imageFile.mv('D:/React Workspace/React-videos-example/file_path/'+req.body.filename+ext, function(err) {
            if (err) {
            return res.status(500).send(err);
            }

            res.json({file: `public/${req.body.filename}.pdf`});
        });
    }

}
在上面的代码中,当我试图打印
req.body
时,它返回“{}”,并且我得到一个错误:

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


因此,我的后端函数已被调用,但无法获取上载的文件。因此,任何人都可以对此问题提供任何解决方案或参考链接吗?

使用formdata时,您不能在帖子中使用json类型,它需要:

contentType:“多部分/表单数据”


而不是“json:true”。

文件在
req
对象中实际上不存在。首先尝试记录
req
,并检查其中的数据。您可能想做的是
req.body.files
或类似的事情。是的,对于文件,我使用的是问题代码片段中提到的Formdata。在formdata中,我添加了两个内容,当我试图使用data.fileName在控制台上显示该值时,它返回未定义的输出。当您只记录
req
我在req.do中得到[object object],
console.log({req})
时,您得到了什么?我已经尝试过,但得到了相同的错误。表单数据中的值也未正确显示在react端。