-समझो कि मेरे पास "file.xml" नामक मेरे प्रोजेक्ट की जड़ में एक फाइल है
-साथ ही मेरे पास परीक्षणों में एक परीक्षण फ़ाइल है / जिसे "test.js" कहा जाता है और इसमें है
const file = fs.readFileSync("../file.xml");
अगर मैं अब node ./tests/test.js
अपने प्रोजेक्ट की जड़ से चलता हूं तो यह कहता है ../file.xml मौजूद नहीं है। यदि मैं परीक्षण निर्देशिका के भीतर से एक ही कमांड चलाता हूं, तो यह काम करता है।
ऐसा लगता है कि fs.readFileSync उस निर्देशिका के सापेक्ष है जहाँ स्क्रिप्ट वास्तव में है, इसके बजाय जहां स्क्रिप्ट है। अगर मैंने fs.readFileSync("./file.xml")
test.js में लिखा है तो यह अधिक भ्रामक लगेगा और एक आवश्यक कथन में सापेक्ष पथों के अनुरूप नहीं है जो कि फ़ाइल सापेक्ष हैं।
ऐसा क्यों है?
मैं अपने fs.readFileSync में पथों को फिर से लिखने से कैसे बच सकता हूं?
__dirname
जरूरी नहीं कि वर्तमान वर्किंग डायरेक्टरी के समान ही हो, लेकिनfs.readFileSync()
वर्तमान वर्किंग डायरेक्टरी का उपयोग करता है। जब आपने नोड लॉन्च किया था, तो यह वर्तमान कार्यशील निर्देशिका के लिए सेट है।