Что означает "расширенный" в express 4.0?
Я использую express, а также body-parser в своем приложении.
app.use(bodyParser.urlencoded({ extended: false }));
но что означает "расширенный" в express 4.0?
Я нашел это
extended - parse extended syntax with the qs module.
однако я все еще не могу понять, что это значит.
3 ответов
если extended
is false
, вы не можете создавать "вложенные объекты"
person[name] = 'cw'
// Nested Object = { person: { name: cw } }
если extended
is true
, вы можете делать все, что вам нравится.
из Body-Parser docs:
новый объект тела, содержащий проанализированные данные, заполняется на объекте запроса после промежуточного программного обеспечения (т. е. req.тело.) Этот объект будет содержать пары ключ-значение, где значение может быть строкой или массивом (если extended-false) или любым типом (если extended-true).
и
расширенная опция позволяет выбирать между разбором данных, закодированных в URL, с помощью библиотеки querystring (когда false) или библиотека qs (если true). "Расширенный" синтаксис позволяет кодировать богатые объекты и массивы в формате URL-кодирования, позволяя использовать JSON-подобный опыт с URL-кодированием. Дополнительные сведения см. В библиотеке qs.
в основном расширенный позволяет анализировать полные объекты.
, когда
extended
свойство имеет значениеtrue
, URL-кодированные данные будут разбирайтесь с библиотека qs.
наоборот,
, когда
extended
свойство имеет значениеfalse
, URL-кодированные данные будут вместо этого разбирайтесь с библиотека строке.
разница между 'QS library` и' querystring библиотека`
-
qs библиотека позволяет создать вложенные объект из строки запроса.
var qs = require("qs") var result = qs.parse("person[name]=bobby&person[age]=3") console.log(result) // { person: { name: 'bobby', age: '3' } }
-
запрос-строку библиотека не поддержка создания вложенного объекта из строки запроса.
var queryString = require("query-string") var result = queryString.parse("person[name]=bobby&person[age]=3") console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
-
qs библиотека не фильтр из '?'из строки запроса.
var qs = require("qs") var result = qs.parse("?a=b") console.log(result) // { '?a': 'b' }
-
запрос-строку библиотека отфильтрует "?'из строки запроса.
var queryString = require("query-string") var result = queryString.parse("?a=b") console.log(result) // { a: 'b' }
app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded
Для получения дополнительной информации вы можете обратиться к ответ Леонида Бесчастного и npm сравнить qs против строки запроса.