Зачем нам нужен экспресс body-parser?
Я наткнулся на множество блогов и статей, в которых они предложили использовать body-parser для разбора данных тела запроса. Есть ли способ проанализировать данные или получить данные тела из тела без использования какого-либо промежуточного программного обеспечения?
1 ответ
По умолчанию express просто выдает необработанное тело HTTP-запроса в req
аргумент как IncomingMessage
который в основном Readable
поток. Когда вы, например, делаете запрос POST формы, форма может быть закодирована различными способами, если она сделана веб-браузером, или это может быть JSON или какой-то произвольный формат. body-parser
Модуль умеет читать тело HTTP-запроса и понимает определенный список различных распространенных кодировок.
Express - это, в основном, очень простая структура для объединения промежуточного программного обеспечения и объявления маршрутизации для вашего приложения. Делая очень мало и преуспевая в этом, он незаметен и может использоваться большим количеством людей. Например, если вы хотите отправить свой собственный формат в HTTP-запросе, вам может потребоваться написать собственный код вместо использования body-parser
, Некоторые платформы HTTP-серверов имеют встроенный эквивалент. В таких рамках может быть сложно / запутанно расширить функциональность анализа тела или даже невозможно. Экспресс проект предлагает body-parser
, но если есть другой модуль, который анализирует тело так, как вам нравится больше, вы всегда можете использовать его вместо этого.
Промежуточное ПО Express - это неоптимизированная веб-структура, поэтому, если вы хотите анализировать результаты как JSON/form/multipart, вам нужно указать express, как вам нужно анализировать тело.
Здесь идет анализатор тела, вы должны использовать его, поскольку это ваше требование для анализа тела как JSON или что-то еще, до тех пор ваше тело запроса всегда будет потоком.