के बीच क्या अंतर है
console.log(process.cwd())
तथा
console.log(__dirname);
मैंने देखा है कि दोनों समान संदर्भों में उपयोग किए जाते हैं।
के बीच क्या अंतर है
console.log(process.cwd())
तथा
console.log(__dirname);
मैंने देखा है कि दोनों समान संदर्भों में उपयोग किए जाते हैं।
जवाबों:
process.cwd()
वर्तमान कार्य निर्देशिका लौटाता है,
यानी वह निर्देशिका जिससे आपने node
कमांड मंगाया था ।
__dirname
जावास्क्रिप्ट स्रोत कोड फ़ाइल वाली निर्देशिका का निर्देशिका नाम देता है
प्रति नोड js के रूप में दस्तावेज़
process.cwd()
cwd
वैश्विक ऑब्जेक्ट की एक विधि है process
, एक स्ट्रिंग मान देता है जो Node.js प्रक्रिया की वर्तमान कार्यशील निर्देशिका है।
प्रति नोड js के रूप में दस्तावेज़
__dirname
स्ट्रिंग मान के रूप में वर्तमान स्क्रिप्ट का निर्देशिका नाम। __dirname वास्तव में वैश्विक नहीं है, बल्कि प्रत्येक मॉड्यूल के लिए स्थानीय है।
मुझे उदाहरण के साथ समझाएं,
मान लें कि हमारे पास एक main.js
फ़ाइल है, जो अंदर रहती है C:/Project/main.js
और node main.js
इन दोनों मानों को एक ही फ़ाइल में वापस चलाना है
या निम्नलिखित फ़ोल्डर संरचना के साथ
Project
├── main.js
└──lib
└── script.js
main.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname===process.cwd())
// true
मान लीजिए कि हमारे पास script.js
परियोजना की एक उप-निर्देशिका के अंदर एक और फाइल फाइल है, जिसे C:/Project/lib/script.js
चलाने की node main.js
आवश्यकता हैscript.js
main.js
require('./lib/script.js')
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname===process.cwd())
// true
script.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project\lib
console.log(__dirname===process.cwd())
// false
प्रत्येक के दायरे को जानने से चीजों को याद रखना आसान हो सकता है।
process
है node
की वैश्विक वस्तु, और .cwd()
रिटर्न जहां नोड चल रहा है।
__dirname
की module
संपत्ति है, और मॉड्यूल के फ़ाइल पथ का प्रतिनिधित्व करता है। नोड में, एक मॉड्यूल एक फ़ाइल में रहता है।
इसी तरह, __filename
एक और module
संपत्ति है, जो मॉड्यूल का फ़ाइल नाम रखती है।
$ find proj
proj
proj/src
proj/src/index.js
$ cat proj/src/index.js
console.log("process.cwd() = " + process.cwd());
console.log("__dirname = " + __dirname);
$ cd proj; node src/index.js
process.cwd() = /tmp/proj
__dirname = /tmp/proj/src
process.cwd()
पर्यायवाची है.
सिवाय इसकेrequire()
?