मैं नोडजेस पर एक ट्यूटोरियल का पालन करने की कोशिश कर रहा हूं। मुझे नहीं लगता कि मुझे कुछ भी याद आया लेकिन जब भी मैं process.env.NODE_ENV
पर कॉल करता हूं तो मुझे वापस प्राप्त करने वाला एकमात्र मूल्य अनिर्धारित होता है। मेरे शोध के अनुसार डिफ़ॉल्ट मान 'विकास' होना चाहिए। यह मान गतिशील रूप से कैसे सेट किया जाता है और इसे प्रारंभ में कहां सेट किया जाता है?process.env.NODE_ENV अपरिभाषित
उत्तर
process.env आपके पर्यावरण का संदर्भ है, इसलिए आपको वहां चर सेट करना होगा।
सेट करने के लिए एक environment variable in Windows:
export NODE_ENV=development
तुम भी कोड से सेट कर सकते हैं, उदाहरण के लिए:
process.env.NODE_ENV = 'test';
मैं किसी भी व्यक्ति को एप्लिकेशन तर्क में पर्यावरण पहचानकर्ता को कभी भी बदलने से हतोत्साहित करता हूं। आप कभी भी एप्लिकेशन को अचानक यह नहीं सोचना चाहते कि यह वास्तव में कुछ और है। यह केवल सिस्टम-स्तर पर बदला जाना चाहिए, क्योंकि कई अन्य उत्तरों का सुझाव है। – Kafoso
आप लगभग 12 कारक ऐप्स पढ़ना चाहेंगे: https://12factor.net/config। यह कोड इसका उल्लंघन होगा। अपने कॉन्फ़िगरेशन को अपने कोड से अलग रखने के अच्छे कारण हैं। – jcollum
12 फैक्टर ऐप्स दिलचस्प है! कीप आईटी उप! – joaquindev
एक आकर्षण की तरह काम किया, धन्यवाद! –
का उपयोग कर * nix (लिनक्स, ओएस एक्स, आदि), एक दूसरा निर्यात आदेश के माध्यम से यह करने के लिए कोई कारण नहीं है लोगों के लिए, आप इसे प्रेरक आदेश के भाग के रूप श्रृंखला कर सकते हैं:
NODE_ENV=development node server.js
आसान, नहीं? :)
जानना बहुत अच्छा है। – basheps
क्रॉस-एनवी जैसे पैकेज से विंडोज़ पर भी काम करने की अनुमति मिल जाएगी। – walkerrandophsmith
विंडोज़ पर नोड के साथ काम करते समय हम इस समस्या में भाग गए।
इन चरों को सेट करने के लिए ऐप चलाने का प्रयास करने वाले किसी भी व्यक्ति की आवश्यकता के बजाय, हमने एप्लिकेशन के भीतर फॉलबैक प्रदान किया।
var environment = process.env.NODE_ENV || 'development';
उत्पादन वातावरण में, हम इसे सामान्य तरीकों (एसईटी/निर्यात) के अनुसार परिभाषित करेंगे।
सुझावों
package.json
में
:
app.js
में
"scripts": {
"start": "set NODE_ENV=dev && node app.js"
}
:
console.log(process.env.NODE_ENV) // dev
console.log(process.env.NODE_ENV === 'dev') // false
console.log(process.env.NODE_ENV.length) // 4 (including a space at the end)
हां, तो यह बेहतर कर सकते हैं:
"start": "set NODE_ENV=dev&& node app.js"
या
console.log(process.env.NODE_ENV.trim() === 'dev') // true
- 1. जावास्क्रिप्ट: अपरिभाषित! == अपरिभाषित?
- 2. अपरिभाषित, typeof अपरिभाषित, hasOwnProperty
- 3. अपरिभाषित
- 4. अपरिभाषित
- 5. servletcontext.addservlet अपरिभाषित
- 6. अपरिभाषित संदर्भ
- 7. अपरिभाषित lcfirst()
- 8. अपरिभाषित $ चर
- 9. स्ट्रिंग.charCodeAt अपरिभाषित?
- 10. अपरिभाषित प्रतीकों
- 11. "अपरिभाषित संदर्भ"
- 12. ko.mapping अपरिभाषित
- 13. getSupportFragmentManager() अपरिभाषित
- 14. navigator.app अपरिभाषित
- 15. अपरिभाषित प्रतीकों
- 16. अपरिभाषित अनुक्रमणिका:
- 17. event.wheelDelta अपरिभाषित
- 18. window.googleapis अपरिभाषित
- 19. जावास्क्रिप्ट "अपरिभाषित
- 20. अपरिभाषित निरंतर
- 21. अपरिभाषित विधि
- 22. अपरिभाषित date_diff()
- 23. अपरिभाषित मूल्यों
- 24. गुण अपरिभाषित
- 25. अपरिभाषित के साथ परेशानी हो रही है! == अपरिभाषित
- 26. "अपरिभाषित" और अपरिभाषित के बीच क्या अंतर है?
- 27. है (++ i) ++ अपरिभाषित व्यवहार?
- 28. अपरिभाषित विधि form_for
- 29. जावा कन्स्ट्रक्टर अपरिभाषित?
- 30. jQuery स्लाइडर च अपरिभाषित
Heroku क्षुधा के लिए NODE_ENV सेट करने के लिए उपयोग कर सकते हैं: 'Heroku config: सेट NODE_ENV =" उत्पादन "' –
हालांकि जवाब नीचे समस्या वातावरण चर, बड़ा सबक यहाँ की स्थापना द्वारा अस्थायी रूप से समाधान होगा यह होना चाहिए कि आप कभी भी यह नहीं जान सकते कि क्या कोई पर्यावरण चर सेट किया जाएगा ... तो तदनुसार अपना कोड लिखें और जांच करें कि यह सेट है और यदि ऐसा है, तो क्या। इसके बारे में धारणा मत बनो। –