const absolutePath = path.join(__dirname, some, dir);
बनाम
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()
प्रक्रिया दायें से बाएँ तक के पथ के अनुक्रम के साथ होती है, जब तक कि कोई निरपेक्ष पथ का निर्माण नहीं हो जाता।