2013-08-27 5 views
11

मुझे Node.js. में कॉन्फ़िगरेशन फ़ाइलों को बनाने के कई तरीके दिखाई देते हैं। एक जेएस फ़ाइल में मॉड्यूल.एक्सपोर्ट का उपयोग करता है, एक सिर्फ सादा जेसन ऑब्जेक्ट का उपयोग करता है।कॉन्फ़िगरेशन फ़ाइलों के लिए मॉड्यूल.एक्सपोर्ट बनाम सादा जेसन

// config1.js 
module.exports = { 
    config_1: "value 1", 
    config_2: "value 2" 
} 

// config2.json 
{ 
    config_1: "value 1", 
    config_2: "value 2" 
} 

कॉन्फ़िगरेशन फ़ाइल में module.exports का उपयोग करने के कोई फायदे हैं? क्या अंतर हैं?

धन्यवाद

+1

केवल वास्तविक अंतर यह है कि आप json फाइलों में टिप्पणी नहीं जोड़ सकते है। यदि आप टिप्पणियों के साथ एक जेएसएस फ़ाइल चाहते हैं तो आपको आरसी फाइल का उपयोग करने में रुचि हो सकती है। –

+0

धन्यवाद जोनाथन, मैंने देखा कि मॉड्यूल.एक्सपोर्ट केवल * .js फ़ाइल में मान्य होगा और जेसन ऑब्जेक्ट के लिए केवल * .json फ़ाइल में मान्य होगा। मैं * .js फ़ाइल में module.exports का उपयोग कर टिप्पणी डाल सकता हूं। –

+0

एक और महत्वपूर्ण नोट यह है कि वास्तविक। जेसन फ़ाइल में अधिक सख्त वाक्यविन्यास होता है, उदाहरण के लिए कुंजी को डबल कोट्स में लपेटा जाना चाहिए, आपके पास वस्तुओं की सरणी के अंत में कॉमा नहीं हो सकता है, आदि –

उत्तर

19

जावास्क्रिप्ट CommonJS मॉड्यूल

  • टिप्पणी
  • सशर्त,
  • छोरों और पॉप्युलेट करने के लिए इस तरह के चूक NODE_ENV के आधार पर config बदलने के लिए
  • कोड या इसी तरह
  • कोड बाहरी देखने के लिए एसएसएल कुंजी, एपीआई क्रेडेंशियल्स, आदि के लिए फ़ाइलें
  • फ़ॉलबैक और चूक
  • आसान है करने के लिए

JSON फ़ाइल

  • पार्स करने के लिए आसान और बाह्य उपकरणों के साथ अद्यतन
  • वहाँ काफी हर प्रोग्रामिंग भाषा
  • शुद्ध डेटा है कि लोड किया जा सकता के साथ संगत निष्पादित किए बिना
  • सुंदर प्रिंट
  • JSON आधार के रूप में शुरू हो सकता है और यह सभी कोड ईएमएस के बारे में CommonJS मॉड्यूल ऊपर वर्णित एक config.js मॉड्यूल config.json पढ़ता के रूप में यह बिंदु

शुरू कर रहा है तो मैं हमेशा सुविधा के लिए एक commonjs मॉड्यूल के साथ शुरू में रह सकता है, लेकिन वहाँ सरल में किसी भी तर्क रखने के लिए। अगर आपके config.js में बग हैं और परीक्षण की आवश्यकता है, तो यह शायद बहुत जटिल है। चुम्मा। अगर मैं किसी तथ्य के बारे में जानता हूं तो अन्य चीजें मेरी कॉन्फ़िगरेशन में चारों ओर पोक करना चाहती हैं, मैं एक JSON फ़ाइल का उपयोग करूंगा।

+0

धन्यवाद @ पीटर। मैं कॉमनजेएस मॉड्यूल का प्रयास करूंगा। –

7

धन्यवाद @ जोनाथन-ओंग, लग रहा है config.js (नहीं JSON फ़ाइल) की उम्मीद के रूप में काम करता है और मैं कुछ टिप्पणी नहीं डाल सकता है की तरह।

module.exports = { 

    // Development Environment 

    development: { 
    database: { 
     host: '127.0.0.1', 
     login: 'dev', 
     password: 'dev' 
    } 
    }, 

    // Production Environment 

    production: { 
    database: { 
     host: '127.0.0.1', 
     login: 'prod', 
     password: 'prod' 
    } 
    } 
}; 
+0

अरे, धन्यवाद इस नमूना को यहाँ डालकर :) – VilleKoo

0

जेएस फाइलों के पास @ पीटर लियंस के रूप में अपने स्वयं के खर्च हैं। लेकिन अगर मुझे एपीआई कुंजी और आदि के लिए बाहरी संसाधनों तक पहुंच नहीं है तो मैं कॉन्फ़िगरेशन फ़ाइलों के लिए JSON पसंद करूंगा।

सरल कारण मुझे कॉन्फ़िगरेशन फ़ाइलों में परिवर्तन करने के लिए केवल मेरे कोड को छूना नहीं होगा। मैं किसी भी कॉन्फ़िगरेशन कुंजी-मूल्य जोड़ी को जोड़ने, अपडेट करने या हटाने के लिए इन जेसन फ़ाइलों को संपादित करने के लिए बस एक एपीआई बना सकता हूं। एक एपीआई का उपयोग कर एक अलग वातावरण के लिए भी पूरी नई कॉन्फ़िगरेशन फ़ाइल जोड़ें।

और उपयोग config मॉड्यूल इन विन्यास का उपभोग करने के

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