Parámetros GET con Node.js y Express

01/Ago/2015 NodeJS

En este ejemplo vamos a ver como podemos recuperar parámetros GET con Node.js y Express. Hay que recordar que los parámetros GET son aquellos que se envían mediante la url en un formato de pares clave/valor y después de la URL.

Lo que vendría a ser:

http://miurl.com?p1=A&p2=B

Para ello vamos a construir un programa con Node.js y Express que nos cree un servidor. Este servidor atenderá a una ruta la cual nos mostrará un formulario que nos pedirá nuestro nombre. Este formulario volverá a llamar a la misma ruta enviando el parámetro mediante GET. Será de eta forma como podamos ver que hay que hacer para capturar parámetros GET con Node.js y Express.

Lo primero será instalar Express si no lo tienes ya instalado. Para ello vamos a utilizar npm.

npm intall express

Esto permitirá que podamos tener los módulos de Express y construir apoyándonos sobre este framework.

En nuestro programa Node.js que llamaremos parametros-get.js lo primero que haremos será incluir el framework Express mediante el método require e instanciarlo:

  1. var express = require('express');
  2. var app = express();

Lo siguiente será crear una ruta en la que vamos a poner nuestro formulario y nuestra obtención de parámetros por GET.

  1. app.get('/saludo', function (req, res) {
  2. });

Por defecto la ruta /saludo nos mostrará un formulario el cual nos pida el nombre. La ruta la construimos mediante el método app.get().

  1. app.get('/saludo', function (req, res) {
  2.  
  3. res.send('<html><body>'
  4. + '<h1>Saludo</h1>'
  5. + '<form method="get" action="/saludo">'
  6. + '<label for="nombre">¿Cómo te llamas?</label>'
  7. + '<input type="text" name="nombre" id="nombre">'
  8. + '<input type="submit" value="Enviar"/>'
  9. + '</form>'
  10. + '</body></html>');
  11.  
  12. });

Vemos que el formulario lo estamos montando dinámicamente enviando el texto al navegador mediante el método .send(). De igual manera podemos observar el destino del formulario es la misma ruta. Por lo cual al principio del método es dónde comprobaremos si se envía el parámetro por GET.

A la hora de acceder al parámetro GET utilizamos el objeto req.query seguido del nombre que tenía el parámetro en el formulario (el nombre definido mediante el atributo name).

  1. eq.query.atributo;

Así nuestro método app.get empezaría de la siguiente forma:

  1. app.get('/saludo', function (req, res) {
  2.  
  3. var nombre = req.query.nombre || '';
  4.  
  5. });

Utilizamos el operador lógico || para asignarle un valor por defecto. Es decir, en el caso de que no llegue el parámetro nombre vía GET asignamos a la variable nombre un valor vacío.

Si insertamos este código dentro del método nos quedará entero de la siguiente forma:

  1. app.get('/saludo', function (req, res) {
  2.  
  3. var nombre = req.query.nombre || '';
  4. var saludo = '';
  5.  
  6. if (nombre != '')
  7. saludo = "Hola " + nombre;
  8.  
  9. res.send('<html><body>'
  10. + '<h1>Saludo</h1>'
  11. + '<p>' + saludo + '</p>'
  12. + '<form method="get" action="/saludo">'
  13. + '<label for="nombre">¿Cómo te llamas?</label>'
  14. + '<input type="text" name="nombre" id="nombre">'
  15. + '<input type="submit" value="Enviar"/>'
  16. + '</form>'
  17. + '</body></html>');
  18.  
  19. });

De esta forma podemos capturar parámetros GET con Node.js y Express. ¿Cómo harías para capturar un segundo parámetro? ¿Te atreves a probarlo y contárnoslo en los comentarios?

Vídeos sobre Node.js


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D