2013-01-31 45 views
35

साथ आदेश मैं अपने सर्वर पर चलने शुरू करने के लिए मेरी नोड अनुप्रयोग है:Node.js हमेशा के लिए वातावरण चर

sudo IS_PROD=1 node app.js 

मैं हमेशा के लिए स्थापित किया है लेकिन वातावरण चर में पारित करने के लिए नहीं कर पा रहे।

sudo IS_PROD=1 forever node app.js 

चाल नहीं लगता है। मैंने इस की कई किस्मों की कोशिश की है। मैं या तो इस आदेश को सफलतापूर्वक या स्थायी रूप से पर्यावरण चर सेट कैसे करूं?

उत्तर

77

सबसे पहले आपको कमांड में node चीज़ छोड़नी चाहिए, यह वहां नहीं होना चाहिए, आपको इसे निष्पादित करने में सक्षम नहीं होना चाहिए। का उपयोग कर स्वचालित रूप से आपकी स्क्रिप्ट शुरू करता है। इसके बजाय आपको ऐसा करना चाहिए;

sudo IS_PROD=1 forever app.js 

शायद आप अपने सर्वर को अग्रभूमि में शुरू करने के बजाय, अपने सर्वर को डिमन के रूप में शुरू करना चाहते हैं। जैसे।

sudo IS_PROD=1 forever start app.js 

इस पृष्ठभूमि है कि आपके नोड एप्लिकेशन देख सकते हैं और यह फिर से शुरु होगा जब यह बाहर निकल जाता है में एक प्रक्रिया पैदा करेगा। अधिक जानकारी के लिए readme देखें।

इन दोनों विधियों में पर्यावरण चर शामिल हैं, जैसे कि आप केवल node का उपयोग कर रहे हैं।

+6

क्या डाउनवॉटर समझा सकता है क्यों? – Mattias

+1

मुझे एक छोटा सा सवाल मिला है, क्योंकि मुझे लगता है कि यह env var हमेशा के लिए बनाए गए प्रत्येक सर्वर पुनरारंभ पर संरक्षित है, क्या मैं किसी भी तरह से पुनरारंभ करने के मामले में एक अलग चर पास कर सकता हूं, पहले स्टार्टअप नहीं। मैं सिर्फ पहले स्टार्टअप (उलझन) पर कुछ फाइल राइटिंग करना चाहता हूं और इसे पुनरारंभ करने पर दोहराना नहीं चाहता हूं। –

+0

सच है। यह मेरा मुद्दा था। मैंने बस 'स्टार्ट' दर्ज नहीं किया। * WRONG *: 'NODE_ENV =" उत्पादन "हमेशा के लिए बिन/www'। * सही *: 'NODE_ENV =" उत्पादन "हमेशा बिन/www' शुरू करें – Green

12

app.js:

console.log(process.env.IS_PROD); 

node (v0.8.21) का उपयोग करना

$ node app.js 
undefined 

$ IS_PROD=1 node app.js 
1 

$ sudo IS_PROD=1 node app.js 
1 

forever (v0.10.0) का उपयोग करना

$ forever app.js 
undefined 

$ IS_PROD=1 forever app.js 
1 

$ sudo IS_PROD=1 forever app.js 
1 

Documentation:

process.env

उपयोगकर्ता वातावरण युक्त एक वस्तु। पर्यावरण देखें (7)।