const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.joinбуде об'єднати те, __dirnameщо є ім'ям каталогу поточного файлу, об'єднаного зі значеннями someта dirз роздільним специфікатором для платформи.
Де як
path.resolveбуде оброблятися __dirname, someі dirтобто справа наліво, попередньо попередньо обробляючи його.
якщо будь-яке значення someабо dirвідповідає кореневому шляху, попередній шлях буде опущено та обробляє решта, вважаючи його кореневим
З метою кращого розуміння концепції, дозвольте мені пояснити обидві детальніше так:
Два path.joinта path.resolveрізні способи або функції модуля шляху, надані nodejs.
Якщо обидва приймають список шляху, але різниця приходить в результат, тобто як вони обробляють цей шлях.
path.joinоб'єднує всі задані сегменти шляху разом, використовуючи роздільник, визначений для платформи, як роздільник, а потім нормалізує отриманий шлях. Хоча path.resolve()процес обробляє послідовність шляхів справа наліво, з кожним наступним шляхом попередньо, поки не будується абсолютний шлях.
Коли аргументів не надано
Наступний приклад допоможе вам чітко зрозуміти обидва поняття: -
Моє ім'я файлу - index.jsпоточний робочий каталогE:\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
Результат
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()метод виведе абсолютний шлях, де як path.join()повертається. що представляє поточний робочий каталог, якщо нічого не передбачено
Коли якийсь кореневий шлях передається як аргументи
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
Результат i
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()лише об'єднує список вхідних даних з роздільним платформою, в той час як path.resolve()обробляє послідовність шляхів справа наліво, при цьому кожен наступний шлях є попереднім, поки не буде побудований абсолютний шлях.