使用 axios 将更多数据与 formData 一起发送到 API

sending more data along with formData to an API with axios

我正在写一个 API 来加载文件夹中的文件

为了 select 我正在使用 FormData 的文件。我用

<input type='file' ref={inputElement} onChange={handleChange} />

选择文件后,使用axios发起请求

    const uploadFile = () => {
        const formData = new FormData();
        formData.append('file', file); // appending file
        axios
            .post('http://localhost:3001/upload', formData, {…

api 接收它并执行它的事情

app.post('/upload', (req, res) => {
    if (!req.files) {
        return res.status(500).send({ msg: 'file not specified' });
    }
    // accessing the file
    const myFile = req.files.file;

它工作正常。

但是,我想将额外信息发送到端点,所以,我将额外信息和表单数据发送到 axios:

    const uploadFile = () => {
        const formData = new FormData();
        formData.append('file', file); // appending file
        axios
            .post('http://localhost:3001/upload', {data: formData, extraInfo: 'more info'}, {

在端点我写:

app.post('/upload', (req, res) => {
    console.log(req.body.extraInfo)
    console.log(req.body.data)

extraInfo 'more info', ok,但是data是空的,我以为data应该是formdata,结果是空的,怎么才能同时得到formData和extraInfo呢

提前致谢

拉斐尔

只需将 extraInfo 添加到 formData,然后将其发送到您的服务器。您可能需要仔细检查您的服务器如何获取数据。

const uploadFile = () => {
    const formData = new FormData();
    formData.append('file', file); // appending file
    formData.append('extraInfo', "Some Info");// additonal data
    axios
        .post('http://localhost:3001/upload', formData, {