नोडज कैसे पढ़ते और लिखते हैं .env फाइलें ds

Dec 11 2020

एनवी फाइलें कैसे पढ़ें और लिखें?

मूल फ़ाइल :

# 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 ...

मैं इसे कैसे प्राप्त कर सकता हूं?

जवाब

2 GribeshDhakal Dec 11 2020 at 21:24

नया प्रोजेक्ट बनाकर शुरू करें।

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

हाँ आपकी टिप्पणियाँ डिलीट हो जाती हैं।

1 plc-dev Dec 11 2020 at 20:05

आप यहाँ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));
ebyte Dec 11 2020 at 20:17

कुछ इस तरह:

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',
  )