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, npmv7.10.0 y expressv4.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 expresspaquete:
- npm install express@4.17.1
En este punto, tienes un nuevo proyecto listo para usar Express.
Crea un nuevo server.jsarchivo 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.queryse 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.jssu 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=usen un navegador web o con Postman.
El servidor responderá con los valores user_id, tokeny geo.
Paso 3 – Uso req.paramscon rutas
req.paramsse puede utilizar para recuperar valores de las rutas.
Considere la siguiente URL:
http://localhost:8080/api/1
Esta URL incluye rutas para apiy :version( 1).
Vuelva a visitar server.jssu 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/1en un navegador web o con Postman.
El servidor responderá con el versionvalor.
Paso 4 – Uso .paramcon controladores de ruta
A continuación, se utiliza la .paramfunció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 usersy :name( Sammy).
Vuelva a visitar server.jssu 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/sammyen un navegador web o con Postman.
El servidor responderá con:
OutputHello SAMMY!
Puede utilizar este parammiddleware 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.jscon 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.postcon 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 POSTy la URL de la solicitud en http://localhost:8080/api/users. Luego, configúrelo Bodyen 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_idvalores 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