parser node instalar example bodyparser body node.js express body-parser

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 en true , los datos codificados con URL se analizarán con la biblioteca qs .

De lo contrario,

cuando la propiedad extended se establece en false , 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.

Analizador de cuerpo: URL codificada


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.