क्याprocess.cwd() बनाम __dirname के बीच क्या अंतर है?
console.log(process.cwd())
और
console.log(__dirname);
मैं दोनों समान संदर्भों में इस्तेमाल देखा है के बीच का अंतर है।
क्याprocess.cwd() बनाम __dirname के बीच क्या अंतर है?
console.log(process.cwd())
और
console.log(__dirname);
मैं दोनों समान संदर्भों में इस्तेमाल देखा है के बीच का अंतर है।
process.cwd()
वर्तमान कार्यशील निर्देशिका,
अर्थात निर्देशिका जिसमें से आप node
आदेश लागू देता है।
__dirname
रिटर्न निर्देशिका जावास्क्रिप्ट स्रोत कोड फ़ाइल
युक्त प्रति नोड js doc process.cwd()
cwd
के रूप में की निर्देशिका का नाम वैश्विक वस्तु process
का एक तरीका है, एक स्ट्रिंग मान जो वर्तमान है रिटर्न Node.js प्रक्रिया की कार्य निर्देशिका।
प्रति एक स्ट्रिंग मान के रूप में वर्तमान स्क्रिप्ट के नोड js doc __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
लगता है हम C:/Project/lib/script.js
यानी एक और फ़ाइल परियोजना की एक उप निर्देशिका के अंदर script.js
फ़ाइलें और node main.js
जो script.js
main.js
require('./assets/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()' को छोड़कर सभी मामलों के लिए 'process.cwd() '' .' समानार्थी है? –
@AlexanderGonchiy सही, '।' 'Process.cwd()' (इसलिए समानार्थी) के सापेक्ष है, 'आवश्यकता() 'को छोड़कर जो वर्तमान निष्पादन फ़ाइल के सापेक्ष काम करता है। अधिक जानकारी के लिए [यहां] (http://stackoverflow.com/a/16730379/927631) देखें। – Dwelle