Tu proyecto en Node JS puede contar con una o más URLs, estas son muy importantes para acceder a los datos de nuestra aplicación. Node JS 10 cuenta con el módulo URL que nos da la posibilidad de trabajar y analizar las URLs. Para acceder a este módulo podemos usar:
const url = require('url');
APIs Nativas para URLs
Node JS 10 nos proporciona 2 APIS en su core para trabajar con URLs, estas son API WHATWG y API Legacy.
Si queremos analizar una cadena URL con ambas APIs, podemos hacerlo usando:
API WHATWG
const myURL = new URL('https://user:[email protected]:8080/p/a/t/h?query=string#hash');
API Legacy
const url = require('url'); const myURL = url.parse('https://user:[email protected]:8080/p/a/t/h?query=string#hash');
Principales Métodos de la API WHATWG URL
Esta API fue agregada en Node JS 7, pero desde a versión 10 ya está disponible de manera global en el core de Node JS. Veamos sus principales métodos:
url.hash
Sirve para obtener y definir un fragmento de la URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com/foo#bar'); console.log(myURL.hash); // Obtenemos #bar
url.host
Obtenemos el dominio y puerto si es necesario de la URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com:81/foo'); console.log(myURL.host); // Obtenemos collectivecloudperu.com:81
url.hostname
Con este método obtenemos el dominio de la URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com:81/foo'); console.log(myURL.hostname); // Obteme,ps collectivecloudperu.com
url.password
Podemos obtener el password que estes pasando por la URL, ejemplo:
const myURL = new URL('https://usuario:[email protected]'); console.log(myURL.password); // Obtenemos password123456
url.pathname
Obtenemos una parte de la ruta que se encuentre en la URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com/abc/xyz?123'); console.log(myURL.pathname); // Obtenemos /abc/xyz
url.port
Con este método obtenemos el puerto de nuestra URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com:8888'); console.log(myURL.port); // Obtenemos 8888
url.protocol
Obtenemos y seteamos el protocolo de la URL, ejemplo:
const myURL = new URL('http://collectivecloudperu.com'); console.log(myURL.protocol); // Obtenemos http:
url.search
Si haces una consulta (query) y lo pasas por la URL, puedes obtenerla, ejemplo:
const myURL = new URL('http://collectivecloudperu.com/abc?123'); console.log(myURL.search); // Obtenemos ?123
url.toJSON()
Podemos obtener un conjunto de URLs en JSON usando JSON.stringify, ejemplo:
const myURLs = [ new URL('http://collectivecloudperu.com'), new URL('http://blog.collectivecloudperu.com') ]; console.log(JSON.stringify(myURLs)); // Obtenemos ["http://collectivecloudperu.com/","https://blog.collectivecloudperu.com/"]
Principales Métodos de la API Legacy URL
Está API nos pide siempre setear const url require(‘url’), ejemplo:
const url = require('url'); const myURL = url.parse('https://user:[email protected]:8080/p/a/t/h?query=string#hash');
Los métodos de esta API son similares a los de la API WHATWG URL , solo que acá hereda urlObject el cual trabaja con (require(‘url’).Url) y es gestionado con la función url.parse() . Mencionaremos solo tres para tener una idea de esta API:
urlObject.auth
Manipulamos el usuario y password de la URL, ejemplo:
'usuario:password'.
urlObject.hash
Trabaja con una parte de la URL incluyendo un carácter especial, ejemplo:
Incluyendo ASCII has (#) '#hash'.
urlObject.host
Usamos la URL completa incluyendo el puerto, ejemplo:
'sub.host.com:8080'.
Con Node JS 10 es mas divertido manipular las URLs de nuestro proyecto, solo debemos saber cuando usarlas.
Esperamos que te haya gustado este artículo, Suscríbete a nuestro canal de Youtube y síguenos en nuestras redes sociales para estar al tanto de nuestros próximos contenidos.