Manipulación de URLs en Node JS 10
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://blog.nubecolectiva.com') ]; console.log(JSON.stringify(myURLs)); // Obtenemos ["https://nubecolectiva.com/","https://blog.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.
- Articulos Node JS
- 05-06-2018
- 05-06-2018
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)