...मेरे पास मेरी डीबी कनेक्शन फ़ाइल और एक अन्य "संरक्षित" फ़ाइल है, जहां मेरे क्रेडेंशियल हैं, और यह फ़ाइल .gitignore में शामिल है। मैं इसे आयात करता हूं और डेटा तक पहुंचता हूं..
इसे करने का सही तरीका पर्यावरण चर का उपयोग करना है।
पर्यावरणीय चर का उपयोग करें
पर्यावरण चर पर्यावरण . पर सेट होते हैं , यानी आपकी स्थानीय विकास मशीन या रिमोट प्रोडक्शन सर्वर। फिर, अपने ऐप के भीतर, आप पर्यावरण चर पढ़ते हैं और उनका उचित उपयोग करते हैं।
इसके (कम से कम) कुछ कारण हैं जो आमतौर पर इस तरह किए जाते हैं:
- किसी फ़ाइल में क्रेडेंशियल मौजूद नहीं है जिसे कोई व्यक्ति रिपोजिटरी सामग्री को देख कर पढ़ सकता है। रिपोजिटरी को क्लोन करने वाले किसी व्यक्ति को आपका जानने की आवश्यकता नहीं है डेटाबेस क्रेडेंशियल।
- विश्वसनीयता के बीच क्रेडेंशियल भिन्न होने की संभावना है। आप अपने स्थानीय विकास मशीन पर एक अलग डेटाबेस और अपने दूरस्थ उत्पादन सर्वर में एक अलग डेटाबेस का उपयोग कर रहे हैं।
यहां बताया गया है कि आप पर्यावरण चर कैसे सेट करते हैं (यह लिनक्स के लिए है, अन्य ओएस भिन्न हो सकते हैं):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar
और यहां बताया गया है कि आप उन्हें Node.js में कैसे पढ़ते हैं:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
या प्रारंभ करते समय चर को प्रक्रिया में पास करें
वैकल्पिक रूप से, आप इस तरह की प्रक्रिया शुरू करते समय चर पारित कर सकते हैं:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
हालाँकि यह आमतौर पर हतोत्साहित किया जाता है क्योंकि आप संभवतः npm start स्क्रिप्ट के माध्यम से अपनी प्रक्रिया शुरू कर रहे हैं। चूंकि package.json
, जहां npm start
कमांड को परिभाषित किया गया है, हमेशा रिपॉजिटरी के लिए प्रतिबद्ध है यह क्रेडेंशियल्स को छिपाने के पूरे उद्देश्य को हरा देता है।