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.