body-parser – opción extendida (qs vs querystring)

En la versión actual de body-parser , la opción extended cuando se usa bodyParser.urlencoded() ahora es necesaria. 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 qs (cuando es verdadera).

[…]

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 cadena de consulta de nodo 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 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 similar a 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 los datos del formulario. 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.