node.js - example - instalar bodyparser node js
¿Qué significa ''extendido'' en express 4.0? (3)
Estoy usando express y también body-parser en mi aplicación.
app.use(bodyParser.urlencoded({ extended: false }));
Pero, ¿qué significa ''extendido'' en express 4.0?
encontré esto
extended - parse extended syntax with the qs module.
Sin embargo, todavía no puedo entender lo que significa.
Cuando la propiedad
extended
se establece entrue
, los datos codificados con URL se analizarán con la biblioteca qs .
De lo contrario,
cuando la propiedad
extended
se establece enfalse
, los datos codificados con URL se analizarán en su lugar con la biblioteca de cadenas de consulta .
Las diferencias entre analizar con `qs library` vs` querystring library`
-
La biblioteca qs le permite crear un objeto anidado a partir de su cadena de consulta.
var qs = require("qs") var result = qs.parse("person[name]=bobby&person[age]=3") console.log(result) // { person: { name: ''bobby'', age: ''3'' } }
-
la biblioteca de cadenas de consulta no admite la creación de un objeto anidado a partir de su cadena de consulta.
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 library no filtrará ''?'' de la cadena de consulta.
var qs = require("qs") var result = qs.parse("?a=b") console.log(result) // { ''?a'': ''b'' }
-
la biblioteca de cadenas de consulta filtrará ''?'' de la cadena de consulta.
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
Para obtener más información, puede consultar
.com/questions/29175465/…
y
comparar npm qs vs query-string
.
De los documentos de Body-Parser:
Un nuevo objeto de cuerpo que contiene los datos analizados se rellena en el objeto de solicitud después del middleware (es decir, req.body). Este objeto contendrá pares clave-valor, donde el valor puede ser una cadena o matriz (cuando se extiende es falso) o cualquier tipo (cuando se extiende es verdadero).
Y
La opción extendida permite elegir entre analizar los datos codificados en URL con la biblioteca de cadena de consulta (cuando es falsa) o la biblioteca qs (cuando es verdadera). La sintaxis "extendida" permite que los objetos ricos y las matrices se codifiquen en el formato codificado con URL, lo que permite una experiencia similar a JSON con codificación URL. Para obtener más información, consulte la biblioteca qs.
Básicamente extendido le permite analizar objetos completos.
Si
extended
es
false
, no puede publicar "objeto anidado"
person[name] = ''cw''
// Nested Object = { person: { name: cw } }
Si
extended
es
true
, puede hacer lo que quiera.