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