Manipulación de URLs en Node JS 10
2 minuto(s)En esta página:
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:
|
1 2 3 |
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
|
1 2 3 4 |
const myURL = new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash'); |
API Legacy
|
1 2 3 4 5 |
const url = require('url'); const myURL = url.parse('https://user:pass@sub.host.com: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:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com/foo#bar'); console.log(myURL.hash); // Obtenemos #bar |
url.host
Obtenemos el dominio y puerto si es necesario de la URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com:81/foo'); console.log(myURL.host); // Obtenemos nubecolectiva.com:81 |
url.hostname
Con este método obtenemos el dominio de la URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com:81/foo'); console.log(myURL.hostname); // Obteme,ps nubecolectiva.com |
url.password
Podemos obtener el password que estes pasando por la URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://usuario:password123456@nubecolectiva.com'); console.log(myURL.password); // Obtenemos password123456 |
url.pathname
Obtenemos una parte de la ruta que se encuentre en la URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com/abc/xyz?123'); console.log(myURL.pathname); // Obtenemos /abc/xyz |
url.port
Con este método obtenemos el puerto de nuestra URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com:8888'); console.log(myURL.port); // Obtenemos 8888 |
url.protocol
Obtenemos y seteamos el protocolo de la URL, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com'); console.log(myURL.protocol); // Obtenemos http: |
url.search
Si haces una consulta (query) y lo pasas por la URL, puedes obtenerla, ejemplo:
|
1 2 3 4 5 |
const myURL = new URL('https://nubecolectiva.com/abc?123'); console.log(myURL.search); // Obtenemos ?123 |
url.toJSON()
Podemos obtener un conjunto de URLs en JSON usando JSON.stringify, ejemplo:
|
1 2 3 4 5 6 7 8 |
const myURLs = [ new URL('https://nubecolectiva.com'), new URL('https://nubecolectiva.com/blog') ]; console.log(JSON.stringify(myURLs)); // Obtenemos ["https://nubecolectiva.com/","https://nubecolectiva.com/"] |
Principales Métodos de la API Legacy URL
Está API nos pide siempre setear const url require(‘url’), ejemplo:
|
1 2 3 4 5 |
const url = require('url'); const myURL = url.parse('https://user:pass@sub.host.com: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:
|
1 2 3 |
'usuario:password'. |
urlObject.hash
Trabaja con una parte de la URL incluyendo un carácter especial, ejemplo:
|
1 2 3 4 |
Incluyendo ASCII has (#) '#hash'. |
urlObject.host
Usamos la URL completa incluyendo el puerto, ejemplo:
|
1 2 3 |
'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.
También en las categorías, etiquetas, búsquedas y más.
En versiones anteriores, se veian con alto disparejo.
Seguimos trabajando en mejorar la comunidad.



Seguimos trabajando las 24 horas del día para brindarte la mejor experiencia en la comunidad.
Hemos corregido el problema y ahora la web no muestra esa barra horizontal y se ve en su tamaño natural.
Seguimos trabajando las 24 horas del día, para mejorar la comunidad.
Seguimos trabajando las 24 horas y 365 días del año para mejorar tu experiencia en la comunidad.

Seguimos trabajando para brindarte le mejor experiencia en Nube Colectiva.
Social
Redes Sociales (Developers)
Redes Sociales (Digital)