const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.joinse concatenará, __dirnameque es el nombre del directorio del archivo actual concatenado con valores de somey dircon un separador específico de la plataforma.
Donde como
path.resolveprocesará __dirname, somey dires decir, de derecha a izquierda, precediéndola procesándola.
si alguno de los valores de someo dircorresponde a una ruta raíz, se omitirá la ruta anterior y el proceso se considerará como raíz
Para comprender mejor el concepto, permítanme explicarles un poco más detalladamente de la siguiente manera:
Los path.joiny path.resolveson dos métodos o funciones diferentes del módulo de ruta proporcionado por nodejs.
Donde ambos aceptan una lista de ruta pero la diferencia viene en el resultado, es decir, cómo procesan esta ruta.
path.joinconcatena todos los segmentos de ruta dados juntos usando el separador específico de la plataforma como delimitador, luego normaliza la ruta resultante. Mientras se path.resolve()procesa la secuencia de rutas de derecha a izquierda, se antepone cada ruta posterior hasta que se construye una ruta absoluta.
Cuando no hay argumentos suministrados
El siguiente ejemplo lo ayudará a comprender claramente ambos conceptos: -
Mi nombre de archivo es index.jsy el directorio de trabajo actual esE:\MyFolder\Pjtz\node
const path = require('path');
console.log("path.join() : ", path.join());
// outputs .
console.log("path.resolve() : ", path.resolve());
// outputs current directory or equalent to __dirname
Resultado
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()El método generará la ruta absoluta donde se path.join()devuelve. representando el directorio de trabajo actual si no se proporciona nada
Cuando se pasa alguna ruta raíz como argumentos
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
Resultado i
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()solo concatena la lista de entrada con un separador específico de la plataforma mientras path.resolve()procesa la secuencia de rutas de derecha a izquierda, con cada ruta posterior antepuesta hasta que se construya una ruta absoluta.