Rutear peticiones en node.js

Desarrollo de aplicaciones móviles multiplataforma con Ionic desde cero: IONIC 3 de [Revilla Vaquero, Eduardo]
 

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.

Un saludo, y si aún no lo has hecho no olvides suscribirte a mi blog para no perderte los próximos posts  :-),

 

También puedes seguirme en Twitter en ‎@revigames y no olvides que me ayudas mucho si compartes este post en las redes sociales.

Deja un comentario

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