Подтвердить что ты не робот

Body-parser - расширенный вариант (qs vs querystring)

В текущей версии body-parser теперь требуется опция extended при использовании bodyParser.urlencoded(). В README объясняется:

Расширенная опция позволяет выбирать между обработкой URL-кодированных данных с помощью библиотеки querystring (когда ложно) или библиотеки qs (когда true).

[...]

По умолчанию используется значение true, но использование значения по умолчанию устарело. Изучите разницу между qs и querystring и выберите подходящую настройку.

Я не нашел никакой полезной или конкретной информации об этом. Я нашел только устаревший node-querystring.

Если эта опция всегда верна?

4b9b3361

Ответ 1

Причиной этого сообщения является то, что body-parser собирается изменить значение по умолчанию для extended от true до false.

Расширенный протокол использует qs library для анализа данных x-www-form-urlencoded. Основным преимуществом qs является то, что он использует очень мощный алгоритм сериализации/десериализации, способный сериализовать любую json-подобную структуру данных.

Но веб-браузеры обычно не используют этот протокол, потому что x-www-form-urlencoded был предназначен для сериализации плоских html-форм. Хотя это может пригодиться, если вы собираетесь отправлять богатые структуры данных, используя ajax.

querystring library` предоставляет базовый алгоритм сериализации/десериализации, используемый всеми веб-браузерами для сериализации данных формы. Этот базовый алгоритм значительно проще, чем расширенный, но ограничен плоскими структурами данных.

Оба алгоритма работают точно так же с плоскими данными.

Теперь, когда вы знаете плюсы и минусы обоих алгоритмов, вам решать, какой из них лучше подходит для вашего приложения.