Я использую 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 ERROR.
Вы можете сделать то же самое, что вы уже сделали, просто добавьте другие данные, которые вы также хотите отправить в formData.. Так formData.append('дата, дата);