Node.js 如何在节点服务器端解析formdata?

Node.js 如何在节点服务器端解析formdata?,node.js,reactjs,axios,Node.js,Reactjs,Axios,我用的是nodejs,REACT,express,axios。我想让上传功能,但我不能。当我上传文件时,服务器无法解析上传的文件(只显示{}日志) 下面是我的前端代码 当用户单击表单元素上的上载按钮时,“handleSubmit”函数被调用,“handleSubmit”函数调用“fileUploadRequest”函数 在“fileUploadRequest”功能中,一切都很好。我可以看到附加文件的信息 <form onSubmit={this.handleSubmit} encType=

我用的是nodejs,REACT,express,axios。我想让上传功能,但我不能。当我上传文件时,服务器无法解析上传的文件(只显示{}日志)

下面是我的前端代码

当用户单击表单元素上的上载按钮时,“handleSubmit”函数被调用,“handleSubmit”函数调用“fileUploadRequest”函数

在“fileUploadRequest”功能中,一切都很好。我可以看到附加文件的信息

<form onSubmit={this.handleSubmit} encType='multipart/form-data'>
                    <input type="file" onChange={this.handleChange}/>
                    <input type="submit" value="UPLOAD"/>
</form>

export function fileUploadRequest(username, uploadFile, uploadFileName) {
    return (dispatch) => {
        dispatch(fileUpload());

        let formData = new FormData();
        formData.append('fileName', uploadFileName);
        formData.append('fileHandler', uploadFile);

        return axios.post('/upload/upload', {formData})
        .then((response) => {
            dispatch(fileUploadSuccess());
        }).catch((error) => {
            dispatch(fileUploadFailure());
        });
    };
}
在req.body日志中,我只能看到{formData:{}}日志

“字段”和“文件”在日志上都是“{}”

如何解析服务器上的附加文件?

使用for Express处理上载的文件。 然后使用
req.file
访问上传文件的所有数据

const multer = require('multer');
const upload = multer({ dest: 'uploads/' });

...

router.post('/upload', upload.single('fileHandler'), (req, res) => {
  console.log('req.file.filename', req.file.filename); // the filename will be generated by multer
  console.log('req.body.fileName', req.body.fileName); // to access the filename you created at the upload
});

@卡迪克斯,谢谢你。我可以用multer解析上传的文件

但我发现了更多的问题。 即使使用multer,我的代码也不起作用

下面是不工作的代码

formData = new FormData();
formData.append('fileName', uploadFileName);
return axios.post('/upload/upload', {formData})
所以我像这样修改了代码

formData = new FormData();
formData.append('fileName', uploadFileName);
return axios.post('/upload/upload', formData);
仅将“{formData}”更改为“formData”,但效果良好。
我不知道为什么会这样。其他人知道这个原因,请对此问题进行评论。

现在您将{}删除到
formData
,是否有效?
formData = new FormData();
formData.append('fileName', uploadFileName);
return axios.post('/upload/upload', formData);