Зачем нам нужен экспресс 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 или что-то еще, до тех пор ваше тело запроса всегда будет потоком.

Другие вопросы по тегам