नोडज कैसे पढ़ते और लिखते हैं .env फाइलें ds
एनवी फाइलें कैसे पढ़ें और लिखें?
मूल फ़ाइल :
# I am a note ...
key1=value1
key2=value2
# I am a note ...
मुझे एक फंक्शन चाहिए setEnv(key, value)
।
भागो setEnv('key1', 'value2')
: इसे बनने दो become
# I am a note ...
key1=value2
key2=value2
# I am a note ...
मैं इसे कैसे प्राप्त कर सकता हूं?
जवाब
नया प्रोजेक्ट बनाकर शुरू करें।
mkdir folder_name
cd folder_name
npm init
फिर अपने प्रोजेक्ट डायरेक्टरी में 'envfile' और 'dotenv' इंस्टॉल करें। Envfile स्थापित करने के लिए कमांड है
npm install envfile --save
इसी तरह से dotenv को इनस्टॉल करें
npm install dotenv --save
पैकेज dotenv सीधे पढ़ता है .env फ़ाइल पैकेज envfile का उपयोग फ़ाइल को पार्स करने और आवश्यकतानुसार करने के लिए किया जाता है। .env
अपने विवरण के साथ परियोजना निर्देशिका में फ़ाइल बनाएँ ।
# I am a note ...
key1=value1
key2=value2
# I am a note ...
के साथ एक नई फ़ाइल बनाएँ filename.js
उसके बाद env वेरिएबल्स प्राप्त करने और सेट करने के लिए आप निम्न कोड का उपयोग कर सकते हैं।
const fs = require('fs');
require('dotenv').config()
const {
parse,
stringify
} = require('envfile');
const pathToenvFile = '.env';
/**
*
* @param {string} key
* //Function to get value from env
*/
function getEnv(key) {
console.log("Getting value of " + key);
console.log(process.env[key]);
}
//Calling the function getEnv
getEnv("key1");
/**
*
* @param {string} key
* @param {string} value
* //Function to set environment variables.
*/
function setEnv(key, value) {
fs.readFile(pathToenvFile, 'utf8', function (err, data) {
if (err) {
return console.log(err);
}
var result = parse(data);
result[key] = value;
console.log(result);
fs.writeFile(pathToenvFile, stringify(result), function (err) {
if (err) {
return console.log(err);
}
console.log("File Saved"); // Can be commented or deleted
})
});
}
//Calling the function setEnv
setEnv('key1', 'value2');
इसके बाद अपनी फ़ाइल का उपयोग करके चलाएं
node filename.js
आप अपना वांछित आउटपुट प्राप्त कर सकते हैं।
प्रारंभिक .env फ़ाइल
# I am a note ...
key1=value1
key2=value2
# I am a note ...
प्रोग्राम चलाने के बाद
key1=value2
key2=value2
हाँ आपकी टिप्पणियाँ डिलीट हो जाती हैं।
आप यहाँenvfile
वर्णित के रूप में मॉड्यूल का उपयोग कर सकते हैं ।
const fs = require('fs');
const envfile = require('envfile');
const envPath = 'pathToEnvFile/.env';
let parsedFile = envfile.parseFileSync(envPath);
parsedFile.NEW_VAR = 'newVariableValue';
fs.writeFileSync(envPath, envfile.stringifySync(parsedFile));
कुछ इस तरह:
function setEnv(envText, key, value) {
if (!envText) {
return;
}
const rp = new RegExp(`${key}=(.*?)\\s`); let result = envText.replace(rp, (m, $1) => {
return m.replace($1, value); }); if (!rp.test(result)) { result += `\n${key}=${value}`;
}
return result;
}
console.log(
setEnv(
`# I am a note ...
key1=value1
key2=value2
# I am a note ...`,
'key1',
'value2',
),
);
लेकिन यह काम नहीं करता है:
setEnv(
`# I am a note ...
key1=value1
key2=value2`,
'key2',
'value1',
)
setEnv(
`# I am a note ...
key1key2=value1
key2=value2`,
'key2',
'2222',
)