वास्तव में, मैं डेटाबेस कनेक्शन जानकारी, पासवर्ड की तरह कॉन्फ़िगरेशन मान स्टोर करने के लिए सिफारिश नहीं होगा, निम्नलिखित कारणों से टोकन तक पहुंचें और वास्तविक अनुप्रयोग कोड के अंदर:
उन मानों को हार्डकोड करना उन्हें बाद में बदलना मुश्किल बनाता है। आपको उन मानों को बदलने के लिए एप्लिकेशन का एक नया संस्करण जारी करना होगा।
यह एक गंभीर सुरक्षा उल्लंघन है, क्योंकि उत्पादन-ग्रेड कॉन्फ़िगरेशन डेटा और पासवर्ड कोड में संग्रहीत नहीं किए जाने चाहिए। इस संवेदनशील डेटा को रिसाव करना बहुत आसान है।
बेहतर डेटा इस डेटा को बाहरी करने और निष्पादन के दौरान आपके आवेदन को पास करना होगा। यह आमतौर पर पर्यावरण चर के माध्यम से किया जाता है। आपको डेटा की प्रत्येक शांति के लिए अद्वितीय पर्यावरण परिवर्तक को परिभाषित करने की आवश्यकता है जिसे विभिन्न वातावरणों के बीच बदलने योग्य होने की आवश्यकता है।
उदाहरण के लिए: DB_HOST
, DB_USER
, DB_PASSWORD
।
$ NODE_ENV=production DB_HOST=1.2.3.4 DB_USER=someusername DB_PASSWORD=somerandompassword /bin/node app.js
वास्तव में, यह मान एन्क्रिप्टेड किया जा सकता है और codebase को जोड़ा गया और उसके बाद तैनाती के दौरान decrypted: तो फिर तुम उन मूल्यों को आप करने के लिए एप्लिकेशन उत्पादन में इस तरह से दे सकते हैं। हालांकि, सुनिश्चित करें कि डिक्रिप्शन कुंजी को तैनाती प्रणाली में सुरक्षित रूप से संग्रहीत किया जाता है या रिलीज इंजीनियर द्वारा इंटरैक्टिव रूप से प्रदान किया जाता है। बॉक्स के बाहर Shippable allows to do this।
विकास के वातावरण है क्योंकि आप बहुत सुविधाजनक
dotenv
module उपयोग कर सकते हैं यह, सरल हो जाता है में
। बस अपनी परियोजना के रूट निर्देशिका में एक .env
फ़ाइल बनाने और इसे करने के लिए सभी चर जोड़ें:
DB_HOST=1.2.3.4
DB_USER=someusername
DB_PASSWORD=somerandompassword
लेकिन,, आप VCS से बाहर करने के लिए है क्योंकि प्रत्येक डेवलपर शायद व्यक्तिगत कॉन्फ़िगरेशन से करना चाहते हैं सुनिश्चित करें। cp .env.dist .env
: आप डिफ़ॉल्ट विन्यास, जो बाद में एक टेम्पलेट के रूप में इस्तेमाल किया जा सकता है शामिल करने के लिए एक .env.dist
फ़ाइल बना सकते हैं।
इसके अलावा, मैं एक पुन: प्रयोज्य मॉड्यूल, जो स्वचालित रूप से दोनों CLI तर्कों और NODE_ENV चर का विश्लेषण करके पर्यावरण का पता लगाने के लिए अनुमति देता है क्रियान्वित किया है। यह आपके विकास मशीन पर उपयोगी हो सकता है क्योंकि आप आसानी से इस तरह Node.js कार्यक्रम आप के लिए एक CLI तर्क पारित करके वातावरण को बदल सकते हैं: $ node app.js --prod
। Gulp के साथ उपयोग करना भी अच्छा है: $ gulp build --prod
।
कृपया अधिक जानकारी देख सकते हैं और detect-environment
's page पर मामलों का उपयोग करें।
अपने Node.js एक HTTP सर्वर अनुप्रयोग है? –
हां यह है। मोंगोडब के साथ भी एक कनेक्शन है। – guiomie