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

Что означает "расширенный" в выражении 4.0?

Я использую экспресс, а также body-parser в своем приложении.

app.use(bodyParser.urlencoded({ extended: false }));

Но что означает "расширенный" в выражении 4.0?

Я нашел это

extended - parse extended syntax with the qs module.

Однако я все еще не могу понять, что это значит.

4b9b3361

Ответ 1

Если extended - false, вы не можете публиковать "вложенный объект"

person[name] = 'cw'

// Nested Object = { person: { name: cw } }

Если extended - true, вы можете делать все, что вам нравится.

Ответ 2

В документах Body-Parser:

Новый объект тела, содержащий проанализированные данные, заполняется объектом запроса после промежуточного ПО (т.е. req.body). Этот объект будет содержать пары ключ-значение, где значение может быть строкой или массивом (если расширено ложно) или любым типом (если расширено значение true).

и

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

В основном расширенный позволяет вам анализировать полные объекты.

Body Parser: Url Encoded

Ответ 3

Если bodyParser.urlencoded({ extended: true }), данные, закодированные в URL, обрабатываются qs library. Синтаксис "расширенный" позволяет кодировать богатые объекты и массивы в формате URL-кодирования, что позволяет использовать JSON-подобный опыт с кодировкой URL.

qs позволяет создавать вложенные объекты внутри строк запроса, окружая имя под-клавиш квадратными скобками [].

Например, строка 'person[name]=bobby' и 'person[age]=3' будет преобразована в:

person: {
    name: 'bobby',
    age: 3
}

Если bodyParser.urlencoded({ extended: false }), данные с кодировкой URL обрабатываются с помощью библиотеки querystring.

Например, строка 'person[name]=bobby' и 'person[age]=3' будет преобразована в:

'name=bobby&age=3'