2011-08-23 4 views
146

में कोई आवश्यकता नहीं है, मैं अपने जावास्क्रिप्ट कोड में दो JSON फ़ाइलों को शामिल करना चाहता हूं जो मेरी जावास्क्रिप्ट स्रोत फ़ाइल के समान निर्देशिका में हैं।में json के लिए node.js

यदि मैं एक और जावास्क्रिप्ट फ़ाइल शामिल करना चाहता हूं तो मैं बस require का उपयोग कर सकता हूं। अब मैं JSON प्राप्त करने के लिए readFileSync और __dirname का उपयोग कर रहा हूं, जो मुझे लगता है कि ऐसा करने के लिए एक बदसूरत तरीका है।

क्या ऐसी कुछ आवश्यकताएं हैं जो मुझे JSON फ़ाइल लोड करने में सक्षम बनाती हैं?

+0

इसी तरह के प्रश्न को देखें: http://stackoverflow.com/questions/4662851/how-do-you-import-non-node-js-files – holygeek

+0

@coen "JSON फ़ाइल शामिल करें" से आपका क्या मतलब है? इसे पढ़ें और पार्स करें? यदि हां, तो संभव डुप्लिकेट: http://stackoverflow.com/questions/5726729/how-to-parse-json-using-nodejs –

+2

हां; पढ़ें और पार्स करें। लेकिन यह विशेष रूप से एक * फ़ाइल * पढ़ रहा है, जो एक जेएस फ़ाइल पढ़ने के समान है, इसलिए यह कोई डुप्लिकेट नहीं है और goatslacker का उत्तर अभी भी मान्य है। – coen

उत्तर

285

एक json फ़ाइल लिखने .x हां, आपको अपने JSON की आवश्यकता हो सकती है जैसे कि आपको एक जेएस फ़ाइल की आवश्यकता होगी।

var someObject = require('./somefile.json')

ES6 में:

import someObject from ('./somefile.json')

+1

क्या यह सच है? यह मेरे लिए काम नहीं कर रहा है, और https://github.com/joyent/node/issues/1357 और https://github.com/joyent/node/pull/584 सुझाव देता है कि यह नहीं होना चाहिए। – user161642

+0

उन दो टिकट 1 और 2 साल के हैं। जेएसओएन की आवश्यकता नोड 0.5 में जोड़ा गया था। – goatslacker

+10

आपको आवश्यकता है ('./ somefile.json') का उपयोग करने की आवश्यकता है यह मानते हुए कि फ़ाइल एक ही निर्देशिका में है (डॉट और स्लैश नोट करें)। –

13

नहीं या तो readFile या readFileSync (उत्तरार्द्ध केवल स्टार्टअप समय पर) का उपयोग करें।

या

तरह मौजूदा और पुस्तकालय का उपयोग वैकल्पिक रूप से एक जे एस फ़ाइल में अपने config बल्कि तो नोड v0.5 के रूप में की तरह

module.exports = { 
    // json 
} 
+0

सीजेसन केवल पूर्ण पथ को संभालता है, क्या मैं सही हूँ? – coen

+1

@coen हां, हम हमेशा सापेक्ष पथ बनाने के लिए '__dirname' का उपयोग करते हैं। – Raynos

+1

या 'वापसी {foo: 'bar'}' – William

10

JSON फ़ाइलें एक स्पष्ट निर्यात बयान की आवश्यकता नहीं है। आपको इसे जावास्क्रिप्ट फ़ाइलों के रूप में उपयोग करने के लिए निर्यात करने की आवश्यकता नहीं है।

तो, आप मान्य JSON दस्तावेज़ के लिए केवल require का उपयोग कर सकते हैं।

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

  • कोई संबंधित समस्या नहीं^_^