const absolutePath = path.join(__dirname, some, dir);
बनाम।
const absolutePath = path.resolve(__dirname, some, dir);
path.join
__dirname जो वर्तमान मंच विशिष्ट विभाजक
जहां
path.resolve
रूप __dirname
, some
और dir
यानी कार्रवाई करेंगे साथ some
और dir
के मूल्यों के साथ concatenated फ़ाइल की निर्देशिका का नाम है श्रेणीबद्ध होगा इसे संसाधित करके इसे बाएं से दाएं से आगे बढ़ाएं।
अगर some
या dir
के मूल्यों के किसी भी रूट के रूप में यह विचार
Inorder बेहतर समझने के लिए द्वारा एक रूट पथ फिर पिछले पथ लोप हो जाएगा और इस प्रक्रिया बाकी से मेल खाती है अवधारणा मुझे समझाती हूँ दोनों छोटा सा निम्नानुसार विस्तृत: -
path.join
और path.resolve
नोडजेस द्वारा प्रदत्त पथ मॉड्यूल के दो अलग-अलग तरीके या कार्य हैं।
जहां दोनों पथ की एक सूची स्वीकार करते हैं लेकिन परिणाम में अंतर आता है यानी वे इन पथों को कैसे संसाधित करते हैं।
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'));
परिणाम मैं इनपुट सूची
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()
केवल concatenates पारित हो जाता है जब वर्तमान कार्यशील निर्देशिका का प्रतिनिधित्व विभाजक जबकि path.resolve()
पथ के अनुक्रम को दाएं से बाएं तक संसाधित करता है, प्रत्येक बाद के पथ पी के साथ एक पूर्ण पथ का निर्माण होने तक repended।
नाइट: '__dirname' उस स्रोत फ़ाइल के साथ पूर्ण पथ है जिसे निष्पादित किया जा रहा स्रोत फ़ाइल है, न कि * वर्तमान कार्यशील निर्देशिका *।पूर्व हमेशा एक ही होगा (जब तक आप फ़ाइल को स्थानांतरित नहीं करते); उत्तरार्द्ध एक [प्रक्रिया-व्यापी पैरामीटर] (https://nodejs.org/docs/latest/api/process.html#process_process_cwd) है जो कि नोड को लॉन्च करने के तरीके के आधार पर भिन्न होता है और आपने इसे बदल दिया है या नहीं [इसे बदल दिया है] (https://nodejs.org/docs/latest/api/process.html#process_process_chdir_directory)। – josh3736
तो '' '__dirname'''' '' path.resolve (__ dirname) '' 'के बीच कोई अंतर नहीं है? – georaldc