Ответ 1
Если extended
- false
, вы не можете публиковать "вложенный объект"
person[name] = 'cw'
// Nested Object = { person: { name: cw } }
Если extended
- true
, вы можете делать все, что вам нравится.
Я использую экспресс, а также body-parser в своем приложении.
app.use(bodyParser.urlencoded({ extended: false }));
Но что означает "расширенный" в выражении 4.0?
Я нашел это
extended - parse extended syntax with the qs module.
Однако я все еще не могу понять, что это значит.
Если extended
- false
, вы не можете публиковать "вложенный объект"
person[name] = 'cw'
// Nested Object = { person: { name: cw } }
Если extended
- true
, вы можете делать все, что вам нравится.
В документах Body-Parser:
Новый объект тела, содержащий проанализированные данные, заполняется объектом запроса после промежуточного ПО (т.е. req.body). Этот объект будет содержать пары ключ-значение, где значение может быть строкой или массивом (если расширено ложно) или любым типом (если расширено значение true).
и
Расширенная опция позволяет выбирать между обработкой URL-кодированных данных с помощью библиотеки querystring (когда ложно) или библиотеки qs (когда true). Синтаксис "расширенный" позволяет кодировать богатые объекты и массивы в формате URL-кодирования, что позволяет использовать JSON-подобный опыт с кодировкой URL. Для получения дополнительной информации см. Библиотеку qs.
В основном расширенный позволяет вам анализировать полные объекты.
Если 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'