मैं नोड.जेएस में एक पर्यावरण चर कैसे सेट कर सकता हूं?


93

मैं नोड.जेएस में एक पर्यावरण चर कैसे सेट कर सकता हूं?

मैं किसी भी प्लेटफ़ॉर्म विशिष्ट पर निर्भर नहीं रहना पसंद करूंगा, जैसे निर्यात या cmd.exe सेट चलाना।


आप इस उत्तर को पढ़ सकते हैं stackoverflow.com/a/57509175/11127383
डैनियल डेनिलेकी

जवाबों:


140

आप अपने पर्यावरण चर को इसमें सेट कर सकते हैं process.env:

process.env['VARIABLE'] = 'value';

-या-

process.env.VARIABLE = 'value';

मंच की बारीकियों का ध्यान रखना चाहिए।


4
मुझे नहीं लगता कि आपको करने की आवश्यकता है var process = require('process'), प्रक्रिया एक वैश्विक चर मौजूद है।
एलेसियोलेक्स

84
ध्यान दें, हालांकि, यह केवल आपके नोड प्रक्रिया के भीतर चर सेट करेगा और किसी भी बच्चे को यह कॉल प्रक्रिया; उदाहरण के लिए, नोड प्रक्रिया से बाहर निकलने पर, शेल में सेट किए गए चर को छोड़ दें, (मूल प्रक्रिया का वातावरण बदलना बहुत सिस्टम-निर्भर है और हमेशा संभव भी नहीं है)।
ebohlman

2
किसी को भी process.env.variable बनाम Global.variable पर एक राय प्रदान करते हैं?
स्कॉट सिल्वी

3
process.env.VARIABLEयदि चर नाम एक ज्ञात स्थिर है, तो ठीक है, जबकि process.env['VARIABLE']किसी भी मामले में काम करता है; मूल प्रश्न पर्याप्त विवरण निर्दिष्ट नहीं करता था, इसलिए अधिक बहुमुखी उदाहरण बेहतर अनुकूल लगता था।
लैंज

3
@BillMorris नहीं, अपने माता-पिता के वातावरण को संशोधित करने के लिए किसी भी प्रक्रिया के लिए संभव नहीं है
lanzz

3

सबसे पहले आपको इस पैकेज को स्थापित करना चाहिए: - https://github.com/motdotla/dotenv [ npm install dotenv]

फिर आपको अपने प्रोजेक्ट की रूट डायरेक्टरी में .env फाइल बनाने की जरूरत है, और वहां आप नीचे दिए गए वेरिएबल को जोड़ सकते हैं: -

NODE_ENV=PRODUCTION
DATABASE_HOST=localhost

अब आप नीचे दिए कोड की तरह इन चर को आसानी से एक्सेस कर सकते हैं: -

require('dotenv').config()
console.log(process.env.NODE_ENV);

यह मेरे लिए काम करता है, उम्मीद है कि मदद करता है।


1
Dotenv द्वारा उपयोग की जाने वाली .env फ़ाइल कितनी सुरक्षित है? अगर .env फ़ाइल में पर्यावरण के तार के भीतर रहस्य सादे पाठ हैं, तो क्या यह आपके नोड कोड में सादे पाठ के रूप में होने से ज्यादा सुरक्षित है? जो स्पष्ट रूप से एक नहीं-नहीं है?
रिक

0

नोड v14.2.0 एनवी चर सेट करने के लिए, पहले अपने प्रोजेक्ट होम डायरेक्टरी में एक फ़ाइल नाम config.env बनाएं और फिर उदाहरण के लिए, अपनी आवश्यकता के सभी चर लिखें।

config.env

NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://lord:<PASSWORD>@cluster0-eeev8.mongodb.net/tour-guide?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/tours-test
DATABASE_PASSWORD=UDJUKXJSSJPWMxw

अब npm से dotenv स्थापित करें, dotenv आपके काम को बंद कर देगा

npm i dotenv

अब आपके सर्वर स्टार्टर स्क्रिप्ट में, मेरे मामले में यह server.js है जो env वेरिएबल्स को लोड करने के लिए doenv का उपयोग करता है।

const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const app = require('./app'); // must be after loading env vars using dotenv

//starting server
const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`app running on port ${port}...`);
});

मैं अपने संदर्भ के लिए यहां, लेखन में app.js में एक्सप्रेस, मेरे सभी एक्सप्रेस कोड का उपयोग कर रहा हूं

const express = require('express');
const tourRouter = require('./route/tourRouter');
const userRouter = require('./route/userRouter');

if (process.env.NODE_ENV === 'development') {
  console.log('mode development');
}
app.use(express.json());

app.use('/api/v1/tours', tourRouter);
app.use('/api/v1/users', userRouter);

module.exports = app;

अब कंसोल का उपयोग करके अपना सर्वर शुरू करें, मैं नोडमॉन का उपयोग कर रहा हूं , आप इसे एनपीएम से इंस्टॉल कर सकते हैं;

nodemon server.js
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.