axios - отправить данные формы и данные не в форме - PullRequest
0 голосов
/ 22 октября 2018

Я использую 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'):
});

Конечная точка всегда успешно получает файл.Пока все хорошо.

Если я хочу отправить какой-то другой фрагмент данных, например date , я могу отправить его так (и это тоже работает):

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 и date данные?Я попробовал следующее (но это не работает):

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 голосов
/ 22 октября 2018

Вы можете сделать то же самое, что вы уже сделали, просто добавьте другие данные, которые вы также хотите отправить, в formData. Итак, formData.append ('date', date);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...