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.