Cómo recuperar parámetros de URL y POST con Express
Introducción
A menudo, cuando creas aplicaciones con Express , necesitarás obtener información de tus usuarios. Dos de los métodos más populares son los parámetros de URL y los parámetros POST.
En este artículo, aprenderá a usar Express para recuperar parámetros de URL y parámetros POST de las solicitudes.
Prerrequisitos
Para completar este tutorial, necesitarás:
- Node.js instalado localmente, lo cual puedes hacer siguiendo Cómo instalar Node.js y crear un entorno de desarrollo local .
- Será necesario descargar e instalar una herramienta como Postman para enviar solicitudes POST.
Nota: Anteriormente, este tutorial recomendaba usar req.param
. Esta opción ya no se utiliza a partir de la versión 4.11.0. Este tutorial también recomendaba instalar body-parser
. Esto ya no es necesario a partir de la versión 4.16.0.
Este tutorial fue verificado con Node v15.4.0, npm
v7.10.0 y express
v4.17.1.
Paso 1 – Configuración del proyecto
Primero, abra su ventana de terminal y cree un nuevo directorio de proyecto:
- mkdir express-params-example
Luego, navegue hasta el directorio recién creado:
- cd express-params-example
En este punto, puedes inicializar un nuevo proyecto npm:
- npm init -y
A continuación, deberá instalar el express
paquete:
- npm install express@4.17.1
En este punto, tienes un nuevo proyecto listo para usar Express.
Crea un nuevo server.js
archivo y ábrelo con tu editor de código:
servidor.js
const express = require('express');const app = express();const port = process.env.PORT || 8080;// routes will go hereapp.listen(port);console.log('Server started at http://localhost:' + port);
Vuelva a visitar su ventana de terminal y ejecute su aplicación:
- node server.js
Tendrás que reiniciar el servidor de nodos cada vez que edites server.js
. Si esto se vuelve tedioso, consulta Cómo reiniciar tus aplicaciones Node.js automáticamente con nodemon .
Ahora vamos a crear dos rutas para probar la captura de parámetros.
Paso 2 – Uso req.querycon parámetros de URL
req.query
se puede utilizar para recuperar valores de parámetros URL.
Consideremos el siguiente ejemplo:
http://example.com/api/users?id=4token=sdfa3geo=us
Esta URL incluye parámetros para id
, token
, y geo
(geolocalización):
id: 4token: sdfa3geo: us
Vuelva a visitar server.js
su editor de código y agregue las siguientes líneas de código para req.query.id
, req.query.token
, y req.query.geo
:
servidor.js
// ...// routes will go here// ...app.get('/api/users', function(req, res) { const user_id = req.query.id; const token = req.query.token; const geo = req.query.geo; res.send({ 'user_id': user_id, 'token': token, 'geo': geo });});app.listen(port);console.log('Server started at http://localhost:' + port);
Con el servidor en ejecución, utilice la URL http://localhost:8080/api/users?id=4token=sdfa3geo=us
en un navegador web o con Postman.
El servidor responderá con los valores user_id
, token
y geo
.
Paso 3 – Uso req.paramscon rutas
req.params
se puede utilizar para recuperar valores de las rutas.
Considere la siguiente URL:
http://localhost:8080/api/1
Esta URL incluye rutas para api
y :version
( 1
).
Vuelva a visitar server.js
su editor de código y agregue las siguientes líneas de código para req.params.version
:
servidor.js
// ...// routes will go here// ...app.get('/api/:version', function(req, res) { res.send(req.params.version);});app.listen(port);console.log('Server started at http://localhost:' + port);
Con el servidor en ejecución, utilice la URL http://localhost:8080/api/1
en un navegador web o con Postman.
El servidor responderá con el version
valor.
Paso 4 – Uso .paramcon controladores de ruta
A continuación, se utiliza la .param
función Express para obtener un parámetro específico. Esto se considera middleware y se ejecutará antes de que se invoque la ruta.
Esto se puede utilizar para validaciones (como verificar si un usuario existe) o para obtener información importante sobre ese usuario o elemento.
Considere la siguiente URL:
http://localhost:8080/api/users/sammy
Esta URL incluye rutas para users
y :name
( Sammy
).
Vuelva a visitar server.js
su editor de código y agregue las siguientes líneas de código para modificar name
:
servidor.js
// ...app.param('name', function(req, res, next, name) { const modified = name.toUpperCase(); req.name = modified; next();});// routes will go here// ...app.get('/api/users/:name', function(req, res) { res.send('Hello ' + req.name + '!');});app.listen(port);console.log('Server started at http://localhost:' + port);
Con el servidor en ejecución, utilice la URL http://localhost:8080/api/users/sammy
en un navegador web o con Postman.
El servidor responderá con:
OutputHello SAMMY!
Puede utilizar este param
middleware para realizar validaciones y asegurarse de que la información transmitida sea válida y tenga el formato correcto.
Luego guarda la información en la solicitud ( req
) para que las demás rutas tengan acceso a ella.
Paso 5 – Uso req.bodycon parámetros POST
express.json()
y express.urlencoded()
son funciones de middleware integradas para soportar cuerpos codificados en JSON y URL.
Ábrelo server.js
con tu editor de código y agrega las siguientes líneas de código:
servidor.js
const express = require('express');const app = express();const port = process.env.PORT || 8080;app.use(express.json());app.use(express.urlencoded({ extended: true }));// ...
A continuación, agregue app.post
con req.body.id
, req.body.token
, y req.body.geo
:
servidor.js
// ...// routes will go here// ...app.post('/api/users', function(req, res) { const user_id = req.body.id; const token = req.body.token; const geo = req.body.geo; res.send({ 'user_id': user_id, 'token': token, 'geo': geo });});app.listen(port);console.log('Server started at http://localhost:' + port);
Con el servidor en ejecución, genere una solicitud POST con Postman.
Nota: Si necesita ayuda para navegar por la interfaz de Postman para solicitudes, consulte la documentación oficial .
Establezca el tipo de solicitud en POST
y la URL de la solicitud en http://localhost:8080/api/users
. Luego, configúrelo Body
en x-www-form-urlencoded
.
Luego, proporcione los siguientes valores:
Llave | Valor |
---|---|
identificación | 4 |
simbólico | sdfa3 |
geo | a nosotros |
Después de enviar la respuesta, el servidor responderá con los user_id
valores token
, y geo
.
Conclusión
En este artículo, aprendiste a usar Express para recuperar parámetros de URL y parámetros POST de las solicitudes. Esto se logró con req.query
, req.params
, y req.body
.
Continúe su aprendizaje con Aprenda a usar el enrutador Express 4.0 y Cómo entregar archivos HTML con Express .
Deja una respuesta