Cómo recuperar parámetros de URL y POST con Express

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1 – Configuración del proyecto
  • Paso 2 – Uso req.querycon parámetros de URL
  • Paso 3 – Uso req.paramscon rutas
  • Paso 4 – Uso .paramcon controladores de ruta
  • Paso 5 – Uso req.bodycon parámetros POST
  • Conclusió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:

    1. mkdir express-params-example

    Luego, navegue hasta el directorio recién creado:

    1. cd express-params-example

    En este punto, puedes inicializar un nuevo proyecto npm:

    1. npm init -y

    A continuación, deberá instalar el expresspaquete:

    1. 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:

    1. 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 .

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion