Как nodejs прочитать данные, которые пришли с клиента посредством formdat?

Как правильно прочитать данные, а главное откуда в nodejs (фреймворк Express), которые приходят от клиента?
если эти данные какие-нибудь json, то все просто. Все то, что мне нужно находится на req.body, а если я использую formdata и вкладываю, к примеру, картинку в бинарном формате?

Вот код клиента (react)
async function onSubmit() {
    const fileFormData = new FormData();
    fileFormData.append('file', file, file.name);
    fileFormData.append('name', 'TEST_NAME');

    const result = await Execute('file/upload', {
      method: 'POST',
      body: fileFormData,
      headers: {
        'CRU-Authorization': localStorage.getItem('login') || '',
        'auth_token': localStorage.getItem('auth_token') || '',
      }
    });
    console.log(result);
  }


Вот код BackEnd
router.post("/upload", async function(request, response) {
console.log(request.body)
});
  • Вопрос задан
  • 397 просмотров
Решения вопроса 3
Alex_mos
@Alex_mos
Google всему голова
Смотря что нужно делать с картинкой. Можно добавить функцию обработчик, которая будет работать с картинкой. Например как предложили выше, в помощью multerjs из бинарного обратно в файл.
Ответ написан
aleksey4uk
@aleksey4uk Автор вопроса
...
ВНИМАНИЕ. Решение для тех, кто хочет использовать минимум библиотек!

1. Если в nodejs Вы используется Express, то ставим библиотеку от express
npm -i express-fileupload
2. Регестрируем ее в головном файле app.js (index.js)
var fileUpload = require('express-fileupload');
app.use(fileUpload());

3. В Роутинге получаем файл:
router.post("/upload", async function(req, res) {
  //Получаем файлы с клиента
  const file = req.files
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы