Rutear peticiones en node.js

Hola a todos:

Hoy vamos a ver como rutear peticiones en node.js.

Para poder acceder a diferentes partes del código dependiendo de la petición HTTP recibida, debemos obtener la url y los posibles parámetros GET/POST.

Toda la información sobre la petición se encuentra en el objeto request que recibimos como parámetro en la función onRequest.

Para extraer esta información necesitamos utilizar el módulo url para extraer la ruta y el módulo querystring para obtener los parámetros pasados por GET o por POST.

Vano a modificar el archivo server.js del post anterior y añadimos la obtención de la url

var http = require("http");
var url = require("url");

function start() 
{
  function onRequest(request, response)
  {
    response.writeHead(200, {"Content-Type": "text/html"});
    var pathname = url.parse(request.url).pathname;
    var query = url.parse(request.url,true).query;
    var id = query.id;
    response.write("Petición para " + pathname + " recibida con id="+id); 
   response.end();
  }
  http.createServer(onRequest).listen(8888);
}
exports.start = start; 

En la variable pathname obtenemos la ruta URL requerida, por lo que podemos tomar decisiones sobre lo que hacer en función de la ruta obtenida.

Por ejemplo si escribimos en la barra de direcciones del navegador http://localhost:8888/productos/gafas/?id=12 la variable pathname contendrá /productos/gafas/ , la variable id valdrá 12 y en el navegador se mostrará el siguiente mensaje: “Petición para /productos/gafas/ recibida con id=12”.

De esta manera podemos tomar  decisiones en función de lo que recibimos como parámetros en la url.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s