2017-03-23 17 views
6

वर्तमान निर्देशिका क्या है जब fs मॉड्यूल में एक विधि को सामान्य नोड.जेएस/एक्सप्रेस ऐप में बुलाया जाता है? उदाहरण के लिए:एफएस मॉड्यूल फ़ंक्शंस द्वारा उपयोग की जाने वाली वर्तमान निर्देशिका क्या है?

var fs = require('fs'); 
var data = fs.readFile("abc.jpg", "binary"); 

abc.jpg का पता लगाने के लिए उपयोग किया जाने वाला डिफ़ॉल्ट फ़ोल्डर क्या है? क्या यह युक्त स्क्रिप्ट के फ़ोल्डर स्थान पर निर्भर है?

क्या वर्तमान निर्देशिका से पूछताछ करने के लिए कोई तरीका है?


मेरे फ़ाइल संरचना है:

ExpressApp1/ 
      app.js 
      routes/ 
       members.js 

members.js में मैं एक fs.createWriteStream("abc") है और फाइल abcExpressApp1/

+0

__dirname वैश्विक चर फ़ाइल की निर्देशिका दे देंगे यह लॉग है –

उत्तर

10

में बनाया गया था यह निर्देशिका जहां नोड दुभाषिया (उर्फ से शुरू किया गया था है वर्तमान कार्यशील निर्देशिका), स्क्रिप्ट के फ़ोल्डर स्थान की निर्देशिका नहीं (धन्यवाद रॉबर्टक्लेप)।

इसके अलावा, वर्तमान कार्यशील निर्देशिका द्वारा प्राप्त किया जा सकता है: अधिक जानकारी के लिए

process.cwd() 

, आप देख सकते हैं: https://nodejs.org/api/fs.html

संपादित करें: क्योंकि आप ExpressApp1 निर्देशिका में node app.js द्वारा app.js शुरू कर दिया, हर सापेक्ष पथ "ExpressApp1" फ़ोल्डर से संबंधित होगा, यही कारण है कि fs.createWriteStream("abc")ExpressApp1/abc में फ़ाइल को लिखने के लिए एक लेखन स्ट्रीम तैयार करेगा। आप ExpressApp1/routes/abc लिए लिखना चाहते हैं, तो आप members.js करने के लिए कोड बदल सकते हैं:

fs.createWriteStream(path.join(__dirname, "abc")); 

अधिक जानकारी के लिए:

https://nodejs.org/docs/latest/api/globals.html#globals_dirname

https://nodejs.org/docs/latest/api/path.html#path_path_join_paths

+3

यह निर्देशिका नहीं है जहां स्क्रिप्ट स्थित है, यह वह निर्देशिका है जहां 'नोड' दुभाषिया शुरू किया गया था (वर्तमान कार्यशील निर्देशिका उर्फ)। – robertklep

+0

@ardilgulez मैंने अपने अनुभव के साथ अपने प्रश्न का विस्तार किया है। –

+0

@robertklep हाँ, आप सही हैं। मुझे सही साबित होना है। – ardilgulez

संबंधित मुद्दे

 संबंधित मुद्दे