Saltar al contenido

¿Puedo usar require (“ruta”). Join para concatenar urls de forma segura?

Solución:

No. path.join() devolverá valores incorrectos cuando se utilice con URL.

Suena como si quisieras new URL(). Del estándar de URL WHATWG:

new URL('/one', 'http://example.com/').href    // 'http://example.com/one'
new URL('/two', 'http://example.com/one').href // 'http://example.com/two'

Tenga en cuenta que url.resolve ahora está marcado como obsoleto en los documentos de Node.

Como Andreas señala correctamente en un comentario, url.resolve (también obsoleto) solo ayudaría si el problema es tan simple como el ejemplo. url.parse también se aplica a esta pregunta porque devuelve campos formateados de manera consistente y predecible a través de la URL objeto que reduce la necesidad de “código lleno de ifs”. Sin embargo, new URL() es también el reemplazo de url.parse.

No, no deberías usar path.join() para unir elementos de URL.

Hay un paquete para hacer eso ahora. Entonces, en lugar de reinventar la rueda, escribir todas sus propias pruebas, encontrar errores, corregirlos, escribir más pruebas, encontrar un caso de borde en el que no funcione, etc., podría usar este paquete.

url-join

https://github.com/jfromaniello/url-join

Instalar en pc

npm install url-join

Uso

var urljoin = require('url-join');

var fullUrl = urljoin('http://www.google.com', 'a', '/b/cd', '?foo=123');

console.log(fullUrl);

Huellas dactilares:

‘http://www.google.com/a/b/cd?foo=123’

Axios tiene una función auxiliar que puede combinar URL.

function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(//+$/, '') + "https://foroayuda.es/" + relativeURL.replace(/^/+/, '')
    : baseURL;
}

Fuente: https://github.com/axios/axios/blob/fe7d09bb08fa1c0e414956b7fc760c80459b0a43/lib/helpers/combineURLs.js

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *