Revista Tecnología

Manipulación de URLs en Node JS 10

Publicado el 06 junio 2018 por Juan Ricardo Castro Lurita @pepoflex

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.


Volver a la Portada de Logo Paperblog