2012-03-26 10 views

उत्तर

284

process.cwd() वर्तमान कार्यशील निर्देशिका,

अर्थात निर्देशिका जिसमें से आप node आदेश लागू देता है।

__dirname रिटर्न निर्देशिका जावास्क्रिप्ट स्रोत कोड फ़ाइल

+4

इसका मतलब यह है कि 'process()' को छोड़कर सभी मामलों के लिए 'process.cwd() '' .' समानार्थी है? –

+6

@AlexanderGonchiy सही, '।' 'Process.cwd()' (इसलिए समानार्थी) के सापेक्ष है, 'आवश्यकता() 'को छोड़कर जो वर्तमान निष्पादन फ़ाइल के सापेक्ष काम करता है। अधिक जानकारी के लिए [यहां] (http://stackoverflow.com/a/16730379/927631) देखें। – Dwelle

14

युक्त प्रति नोड 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 
संबंधित मुद्दे