nodejs - ¿Qué hace `app.use(bodyParser.json())` hacer?
node install body parser (3)
De acuerdo, al contrario de lo que pensé anteriormente, investigaciones posteriores muestran que extended: true
y app.use(bodyParser.json())
se pueden usar juntos. Por lo tanto, no solo se extended: false
que lo usa. La instrucción app.use(bodyParser.json())
se debe usar de forma independiente, ya sea que establezca extended como true
o false
.
app.use(bodyParser.json())
le dice básicamente al sistema que desea que se use json.bodyParser.urlencoded({extended: ...})
básicamente le dice al sistema si desea usar un algoritmo simple para el análisis superficial (es decir, falso) o algoritmo complejo para el análisis profundo que puede tratar con objetos anidados (es decir, verdadero).
Eche un vistazo a los documentos (es decir, https://expressjs.com/en/guide/migrating-4.html ) para ver el ejemplo.
Por:
bodyParser.urlencoded({extended: ...})
mi investigación me muestra que si se extended: true
, entonces puede analizar objetos anidados, o generalmente cualquier tipo. Sin embargo, si configura extended: false
, solo podrá analizar cadenas o matrices. Pero que hace ...
app.use(bodyParser.json())
significa exactamente? Quiero decir, sí ... sé que los documentos mencionan que analiza a Jason. Pero todavía estoy confundido. Me he dado cuenta de que las aplicaciones que configuraron extended: true
NO usan bodyParser.json()
en absoluto. Pero las aplicaciones que se extended: false
tienden a usar bodyParser.json()
. ¿Por qué es esto? Al final del día, ambas aplicaciones pueden analizar json.
En segundo lugar, ¿cuál es el enfoque recomendado?
La codificación URL y la codificación JSON permiten convertir un objeto (anidado) en una cadena, pero el formato es diferente. En general, una cadena codificada en URL no es una cadena JSON válida.
Una aplicación puede usar un método de codificación y otro el otro. Siempre que no mezclen los dos, funcionará.
bodyParser.json devuelve middleware que solo analiza json. Este analizador acepta cualquier codificación Unicode del cuerpo y admite el inflado automático de gzip y desinfla las codificaciones.
Un objeto cuerpo nuevo que contiene los datos analizados se rellena en el objeto de solicitud después del middleware (es decir, req.body).