Principales diferencias entre req.query
y req.param
en 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.query
yreq.param
?Respuestas:
req.query
devolverá un objeto JS después de analizar la cadena de consulta./ user? name = tom & age = 55 -
req.query
produciría{name:"tom", age: "55"}
req.params
devolverá parámetros en la ruta coincidente. Si su ruta es / user /: id y realiza una solicitud a / user / 5 -req.params
produciría{id: "5"}
req.param
es una función que elimina los parámetros de la solicitud. Todo esto se puede encontrar aquí .ACTUALIZAR
Si el verbo es a
POST
y 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 delPOST
formulario ed.fuente
req.query
es la cadena de consulta enviada al servidor, ejemplo/page?
test = 1 ,req.param
son los parámetros pasados al controlador.app.get('/user/:id', handler);
, yendo a/user/blah
,req.param.id
volveríablah
;fuente
req.data
, si es GET, estará enreq.param
c.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