querystring query node from node.js express body-parser

node.js - node - body-parser-opción extendida(qs vs querystring)



querystring node package (1)

En la versión actual de body-parser , ahora se requiere la opción extended cuando se usa bodyParser.urlencoded() . En el README, explica:

La opción extendida permite elegir entre analizar los datos codificados en URL con la biblioteca de cadenas de consulta (cuando es falso) o la biblioteca de qs (cuando es verdadero).

[...]

El valor predeterminado es verdadero, pero el uso del valor predeterminado ha quedado en desuso. Por favor investigue la diferencia entre qs y cadenas de consulta y elija la configuración apropiada.

No pude encontrar ninguna información útil o específica sobre esto. Solo encontré una node-querystring desaprobada.

¿Esta opción debería ser siempre cierta?


El motivo de este mensaje es que body-parser está a punto de cambiar el valor predeterminado para extended de true a false .

El protocolo extendido utiliza la biblioteca qs para analizar los datos de x-www-form-urlencoded . La principal ventaja de qs es que utiliza un algoritmo de serialización / deserialización muy potente, capaz de serializar cualquier estructura de datos tipo json.

Pero los navegadores web normalmente no usan este protocolo, porque x-www-form-urlencoded fue diseñado para serializar formularios html planos. Sin embargo, puede ser útil si va a enviar estructuras de datos enriquecidas utilizando ajax .

querystring library` proporciona un algoritmo básico de serialización / deserialización, el que utilizan todos los navegadores web para serializar datos de formularios. Este algoritmo básico es significativamente más simple que el extendido, pero se limita a estructuras de datos planas.

Ambos algoritmos funcionan exactamente igual con datos planos.

Ahora, cuando conoce los pros y los contras de ambos algoritmos, depende de usted decidir cuál se adapta mejor a su aplicación.