Ir al contenido

Parámetros GET con Node.js y Express

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

Ventana de terminal
npm install 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:

var express = require('express');
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.

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

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().

app.get('/saludo', function (req, res) {
res.send(''
+ '<h1>Saludo</h1>'
+ '<form action="/saludo" method="get">'
+ '<label for="nombre">¿Cómo te llamas?</label>'
+ '<input id="nombre" name="nombre" type="text"></input>'
+ '<input type="submit" value="Enviar"></input>'
+ '</form>'
+ '');
});

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

req.query.atributo;

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

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

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:

app.get('/saludo', function (req, res) {
var nombre = req.query.nombre || '';
var saludo = '';
if (nombre != '')
saludo = "Hola " + nombre;
res.send(''
+ '<h1>Saludo</h1>'
+ '<p>' + saludo + '</p>'
+ '<form action="/saludo" method="get">'
+ '<label for="nombre">¿Cómo te llamas?</label>'
+ '<input id="nombre" name="nombre" type="text"></input>'
+ '<input type="submit" value="Enviar"></input>'
+ '</form>'
+ '');
});

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?

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Parámetros GET con Node.js y Express

Aprende a capturar parámetros GET con Node.js y Express. Descubre cómo usar req.query para obtener valores de formularios y URLs en tu aplicación.

Descargar código