Выбор ответа Middle HTTP-сервер, Express, NestJS обновлено

Тело запроса в node:http

Вопрос

Как в голом node:http получить тело POST-запроса?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Прочитать поток req через for await и склеить. req в node:http это IncomingMessage, Readable-поток.

Варианты ответа

  1. Прочитать поток req через for await и склеитьправильный ответ
  2. Прочитать свойство req.body, его заполняет Node
  3. Вызвать await req.json(), как в fetch
  4. Тело доступно только в Express через body-parser

Разбор

req в node:http это IncomingMessage, Readable-поток. Тело приходит чанками, их собирают и склеивают через Buffer.concat, затем парсят.

  • req.body создают фреймворки, в голом http его нет.
  • req.json() есть у Request из fetch API, а не у IncomingMessage.
  • Фреймворки сами читают тот же поток, просто прячут это.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.