Principales diferencias entre req.queryy req.paramen Express
- ¿En qué se diferencian ambos entre sí?
- Cuando usar entonces en que casos
Supongamos que un cliente envía un par de Android (clave, valor) en la solicitud ... ¿cuál usar?
[EDITAR]
Supongamos que Android envía una solicitud POST -> La intención es enviar (clave, valor) al cliente y el servidor debe realizar una consulta de base de datos basada en el valor en el servidor y devolver la respuesta JSON
:: mirada a esta pregunta para el programa de referencia i: : Sencillo programa Express para hacer consultas a un resultado

req.queryyreq.param?Respuestas:
req.querydevolverá un objeto JS después de analizar la cadena de consulta./ user? name = tom & age = 55 -
req.queryproduciría{name:"tom", age: "55"}req.paramsdevolverá parámetros en la ruta coincidente. Si su ruta es / user /: id y realiza una solicitud a / user / 5 -req.paramsproduciría{id: "5"}req.parames una función que elimina los parámetros de la solicitud. Todo esto se puede encontrar aquí .ACTUALIZAR
Si el verbo es a
POSTy estás usandobodyParser, entonces deberías poder obtener el cuerpo de la forma en tu función conreq.body. Esa será la versión JS analizada delPOSTformulario ed.fuente
req.queryes la cadena de consulta enviada al servidor, ejemplo/page?test = 1 ,req.paramson los parámetros pasados al controlador.app.get('/user/:id', handler);, yendo a/user/blah,req.param.idvolveríablah;fuente
req.data, si es GET, estará enreq.paramc.Param("id") == ""Sugeriría usar lo siguiente
req.param('<param_name>')req.param ("") funciona de la siguiente manera
La búsqueda se realiza en el siguiente orden:
Se debe favorecer el acceso directo a req.body, req.params y req.query para mayor claridad, a menos que realmente acepte la entrada de cada objeto.
Ref: http://expressjs.com/4x/api.html#req.param
fuente
Pasando params
GET request to "/cars/honda"devuelve una lista de modelos de automóviles Honda
Pasando consulta
GET request to "/car/honda?color=blue"devuelve una lista de modelos de automóviles Honda, pero filtrada para que solo se devuelvan los modelos con un color de stock de azul.
No tiene sentido agregar esos filtros en los parámetros de la URL (/ car / honda / color / blue) porque según REST, eso implicaría que queremos obtener un montón de información sobre el color "blue". Dado que lo que realmente queremos es una lista filtrada de modelos Honda, utilizamos cadenas de consulta para filtrar los resultados que se devuelven.
Observe que las cadenas de consulta son en realidad solo pares {clave: valor} en un formato ligeramente diferente:? Clave1 = valor1 & clave2 = valor2 & clave3 = valor3.
fuente