axios-发送表单数据和非表单数据

时间:2018-10-21 21:12:37

标签: javascript axios

我正在使用axios将数据发送到我的nodejs / express服务器。如果要发送表单数据,请执行以下操作(它可以正常运行):

const formData = new FormData();
formData.append('nameOfFile', the_file);

axios({
    method: 'post',
    url: '/someRoute',
    data: formData
    headers: {
        'Content-Type': 'multipart/form-data'
        }
}).then(response => {
   // Do something with response
}).catch(err => {
   // Do something with err
});

同样,以上代码可以正常工作。这是它进入的 / someRoute 端点:

app.post('/someRoute', (req, res) => {
    const uploadedFile = req.files.nameOfFile;
    res.send('success'):
});

端点始终成功接收文件。到目前为止,一切都很好。

如果我想发送其他数据,例如日期,我可以像这样发送(并且也可以):

const date = '2012-02-13';

axios({
    method: 'post',
    url: '/someRoute',
    data: date
})

app.post('/someRoute', (req, res) => {
    const date = req.body.date;
    res.send('success'):
});

但是如何发送两者 formDate 日期数据?我尝试了以下操作(但不起作用):

const formData = new FormData();
formData.append('nameOfFile', the_file);

axios({
    method: 'post',
    url: '/someRoute',
    data: {
        form: formData,
        date: '2012-02-13'
    },
    headers: {
        'Content-Type': 'multipart/form-data'
    }
}).then(response => {
   // Do something with response
}).catch(err => {
   // Do something with err
});

终点:

app.post('/someRoute', (req, res) => {
    const uploadedFile = req.files.nameOfFile;
    const date = req.body.date;
    res.send('success'):
});

这给了我 500错误

1 个答案:

答案 0 :(得分:1)

您可以执行已经完成的相同操作,只需将要发送的其他数据附加到formData。 所以           formData.append('date',date);