Почему тело запроса является пустым при загрузке файла с почтальоном в Node.js - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь загрузить файл из почтальона на сервер Node.js.Я использую multer и body-parse для разбора тела запроса.

Вариант использования:

  1. , когда я использую POST-запрос с raw-JSON в качестве Body в Postman, все работает нормально, и я вижу req.body в точности так, как это предусмотрено в Postman итакже я могу назначить новую пару ключ-значение для req.body, чтобы эти новые переменные можно было использовать в дальнейшем промежуточном программном обеспечении в маршруте.
  2. Но когда я пытаюсь загрузить файл из почтальона с данными формыкак тело в Почтальоне, тогда я могу получить значение из req.body, как указано.Но после промежуточного среднего уровня вновь присвоенные значения req.body (из промежуточного программного обеспечения) отображаются поврежденными, как req.body становится [Object: null prototype].Я могу подтвердить, что Multer работает нормально, но Multer повреждает данные req.body (которые создаются в самом промежуточном программном обеспечении маршрута)

Пожалуйста, помогите определить значение req.body = [Object:нулевой прототип]

Ответы [ 2 ]

0 голосов
/ 04 сентября 2019

Шивам Махаджан написал почти так, как он есть, но:

Вы можете получить доступ к текстовым полям не в req.{Name_of_field}, а req.body.{Name_of_field}, как сказано в multer docs .

0 голосов
/ 30 мая 2019

Я столкнулся с подобной проблемой.Если вы console.log (req.body) в функции.вы заметите, что тело равно [Object: null prototype], потому что Multer обрабатывает запрос, так как форма состоит из нескольких частей.Итак, если вы используете console.log (req) объект, вы можете найти значения, которые можно получить, и вы можете просто сделать req. {Name_of_field}, чтобы получить значения.

Если вам нужны пояснения, пожалуйста, дайте мне знать,Я мог бы поделиться кодом.

...