"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पर्यावरण चर: जेएस विकास के लिए एक बहुत ही संक्षिप्त परिचय

पर्यावरण चर: जेएस विकास के लिए एक बहुत ही संक्षिप्त परिचय

2024-10-31 को प्रकाशित
ब्राउज़ करें:660

Environment Variables: a very short intro for JS development

इस लेख का उद्देश्य मेरे लिए पर्यावरण चर में एक संक्षिप्त जांच करना है, इसलिए संक्षिप्त शैली

मूल बातें

  • टर्मिनल एक ऐप है जो वास्तव में एक टर्मिनल एमुलेटर है
  • हम टर्मिनल का उपयोग शेल के साथ करते हैं
  • शेल प्रक्रियाओं को उत्पन्न कर सकता है, जैसे नोड जैसे किसी अन्य ऐप के माध्यम से एक जावास्क्रिप्ट प्रोग्राम
    • उदा. शेल -> नोड -> इंडेक्स.जेएस
  • जब हम टर्मिनल खोलते हैं तो शेल में एक नया सत्र बन जाता है
  • इस सत्र में वेरिएबल हैं जो इसके साथ जुड़े हो सकते हैं (उदाहरण के लिए echo $USER वर्तमान उपयोगकर्ता का नाम प्रिंट करता है)

नोड

नोड में, पर्यावरण चर को वैश्विक प्रक्रिया के माध्यम से एक्सेस किया जाता है।env

console.log(process.env.USER); // username
  • एप्लिकेशन आमतौर पर पर्यावरण चर के माध्यम से रहस्य या कॉन्फ़िगरेशन संबंधी डेटा तक पहुंचते हैं
    • उदा. प्रक्रिया.env.DB_CONNECTION
    • यह सहायक है क्योंकि हम रहस्यों को गुप्त रखना चाहते हैं, और प्रत्येक उपयोगकर्ता को समान कॉन्फ़िगरेशन की आवश्यकता नहीं होगी - यह तर्क और कॉन्फ़िगरेशन को बेहतर ढंग से अलग करने की अनुमति देता है

वेरिएबल लोड करने की विधियाँ

ऐसे कुछ तरीके हैं जिनसे हम इन वेरिएबल्स को अपने कार्यक्रमों के लिए उपलब्ध करा सकते हैं।

(1) उन्हें कमांड लाइन के माध्यम से उपलब्ध कराना:

बिल्कुल सीधा - बस कमांड लाइन में वेरिएबल के साथ कमांड को कॉल करें।

DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js

(2) उन्हें एक .env फ़ाइल में संग्रहीत करना

.env फ़ाइलों में KEYS और VALUES होते हैं जो एक बराबर चिह्न से अलग होते हैं।

DB_CONNECTION="postgresql://username:password@host:port/database_name"

ये फ़ाइलें सामान्य हैं, और इन्हें आपके एप्लिकेशन पर उपलब्ध कराने के कुछ तरीके हैं।

direnv

direnv जैसे टूल का उपयोग करें जो फ़ाइल से वेरिएबल्स को लोड करता है और उन्हें शेल में उपलब्ध कराता है; यह आमतौर पर विश्व स्तर पर स्थापित है।

डिफ़ॉल्ट रूप से direnv एक .envrc फ़ाइल की तलाश करता है, लेकिन यह .env का भी उपयोग कर सकता है, ऐसा करने के लिए इसे कॉन्फ़िगर करने के लिए यहां देखें।

dotenv

dotenv जैसे टूल का उपयोग करें जो फ़ाइल से वेरिएबल लोड करता है और उन्हें प्रोसेस.env में उपलब्ध कराता है।

डिरेनव बनाम डोटेनव

प्रत्येक विधि के अपने फायदे और नुकसान हैं।

Direnv का उपयोग करना भाषा अज्ञेयवादी है और इसका अर्थ कम निर्भरता है, लेकिन इसका मतलब यह भी है कि यदि आपके एप्लिकेशन के उपभोक्ता direnv का उपयोग नहीं कर रहे हैं तो उन्हें पर्यावरण चर लोड करने के लिए अपने स्वयं के तरीके की आवश्यकता है;

dotenv का उपयोग यह सुनिश्चित करता है कि एप्लिकेशन के उपभोक्ता बिना किसी चिंता के .env फ़ाइल का उपयोग कर सकते हैं, लेकिन यह कुछ ऐसा करने के लिए एक पैकेज जोड़ता है जो शेल मूल रूप से कर सकता है।

नोड ध्वज

नोड में हाल ही में सीधे .env फ़ाइलों का उपयोग करने के लिए समर्थन (v20.6.0) शामिल किया गया है।

एक ध्वज का उपयोग करना होगा

node --env-file=.env index.js

dotenv की तरह, यह .env की सामग्री को प्रोसेस.env में उपलब्ध कराता है।

सारांश

  • पर्यावरण चर शेल की मूल तकनीक हैं
  • उन्हें लोड करने के कुछ अलग-अलग तरीके हैं - सीधे, डिरेनव, डोटेनव, नोड
  • direnv वेरिएबल्स को आपके शेल में लोड करता है, लेकिन dotenv और नोड उन्हें केवल प्रक्रिया.env के माध्यम से आपके एप्लिकेशन के लिए उपलब्ध कराते हैं।
  • यदि नोड का उपयोग कर रहे हैं, तो आपको संभवतः नए --env-फ़ाइल ध्वज का उपयोग करना चुनना चाहिए
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/charlesloder/environment-variables-a-every-short-intro-for-js-development-18j3?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3