Node.js හි පරිසර විචල්‍යයන් කියවන්න


1308

Node.js කේතයේ පරිසර විචල්‍යයන් කියවීමට ක්‍රමයක් තිබේද?

උදාහරණයක් ලෙස පයිතන්ගේ os.environ['HOME'].

Answers:


1896
process.env.ENV_VARIABLE

ENV_VARIABLEඔබට ප්‍රවේශ වීමට අවශ්‍ය විචල්‍යයේ නම කොහිද?

සඳහා Node.js docsprocess.env බලන්න .


5
මෙය නෝඩ් ක්‍රියාවලියෙන් සහ එහි උපසිරැසි වලින් පිටත නොපෙනෙන බව සලකන්න. උදා: ඔබ envනෝඩ් ක්‍රියාවලිය ක්‍රියාත්මක වන විට වෙනත් ෂෙල් කවුළුවක වෙඩි තැබුවහොත් හෝ නෝඩ් ක්‍රියාවලිය පිටවීමෙන් පසු එකම කවචයකදී එය නොපෙනේ .
මාකෝ බොනාසි

17
මෙය විචල්‍යයන් පැවරීම සඳහා ද ක්‍රියා කරයි. process.env.FOO = "foo";කටයුතු.
පැටවුන්

16
ප්‍රතික්‍රියා යෙදුමක මෙය ක්‍රියාත්මක නොවන බව සඳහන් කිරීම වටී. process.envආරක්ෂක හේතූන් මත සනීපාරක්ෂක වේ. REACT_ENV_ලබා ගත හැකි විචල්‍යයන් පමණි . බලන්න: github.com/facebookincubator/create-react-app/blob/master/…
මාර්ක් එඩින්ටන්

7
Ark මාක් එඩින්ටන් මම හිතන්නේ එය එසේ විය යුතුයිREACT_APP_
14

5
14 මිස්ටර් 14 හරි ඔබ! එය REACT_APP_ නොවේ REACT_ENV_
මාර්ක් එඩින්ටන්

134

Node.js භාවිතා කරන විට , ඔබට process.envවස්තුවෙන් යතුරෙන් පරිසර විචල්‍යයන් ලබා ගත හැකිය :

උදාහරණයක් වශයෙන්

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

Node.js හි පරිසර විචල්‍යයන් සැකසීම පැහැදිලි කරන පිළිතුර මෙන්න


ඉහත process.env ක්‍රමය භාවිතා කිරීමට අවශ්‍ය වන්නේ කුමක්ද?
user_mda

4
eruser_mda process.envnode.js api තුළට සාදා ඇත.
ජේසන් ඇක්සෙල්සන්

Process.env හි මට අවශ්‍ය ඕනෑම දෙයක් මා විසින් සකසා තිබේද? වින්‍යාසගත වස්තුවක් () විසින් node.js විසින් සංස්කරණය කිරීම අවශ්‍ය යැයි පැවසීමට වඩා මිනිසුන් එය එහි තබන්නේ ඇයි?
පීඩීඑන්

3
process.env මඟින් මෙහෙයුම් පද්ධති මට්ටමින් පරිසර විචල්‍ය කට්ටලයකට ප්‍රවේශය ලබා දේ. මේවා විවිධ ආකාරවලින් සැකසිය හැකි අතර ඔබ ඔබේ යෙදුම යෙදවූ ස්ථානය මත රඳා පවතී. උදාහරණයක් ලෙස, මම බොහෝ විට මගේ දේශීය යෙදුම NODE_ENV = සංවර්ධනය NODE_PATH = lib node server.js භාවිතා කර ධාවනය කරමි. එවිට
process.env.NODE_PATH විසින්

59

ඔබේ Node.js වැඩසටහනේ ජනනය කරන ලද නූල් යතුරක් භාවිතා කිරීමට ඔබට අවශ්‍ය නම් var v = 'HOME', ඔබට භාවිතා කළ හැකිය process.env[v].

එසේ නොමැතිනම්, process.env.VARNAMEඔබේ වැඩසටහනේ දෘඩ කේත කළ යුතුය.


1
ඔබට ඇත්තේ process.env['HOME']ඇයි?
ඇල්ගෝ රිදම්

39

Node.JS පරිසර විචල්ය ලබා ගැනීමට ඔබ භාවිතා කළ හැකිය process.env.VARIABLE_NAME , නමුත් process.env මත දේපල පැවරීම නිසැකයෙන්ම වැලක් එහි අගය පරිවර්තනය කරනු ඇත බව අමතක කරන්න එපා.

බූලියන් තර්කනයෙන් වළකින්න

ඔබගේ .env ගොනුව SHOULD_SEND = අසත්‍ය හෝ SHOULD_SEND = 0 වැනි විචල්‍යයක් අර්ථ දැක්වුවද , අගයන් නූල් බවට පරිවර්තනය වේ ( පිළිවෙලින් “අසත්‍ය” සහ “0” ) සහ ඒවා බූලියන් ලෙස අර්ථ නිරූපණය නොකෙරේ.

if (process.env.SHOULD_SEND) {
 mailer.send();
} else {
  console.log("this won't be reached with values like false and 0");
}

ඒ වෙනුවට, ඔබ පැහැදිලි චෙක්පත් කළ යුතුය. පරිසරයේ නම මත පදනම්ව මම සොයාගෙන ඇත.

 db.connect({
  debug: process.env.NODE_ENV === 'development'
 });

1
පැහැදිලිව පරික්ෂා කළ යුතු බූලියන් එන්ව් වර්ස් සඳහා 'ඔව්' සහ 'නැත' භාවිතා කිරීමට මම කැමතියි. මෙය බොහෝ ක්‍රමලේඛන භාෂාවල ඇති ගැටළු මඟහරවා ගනී.
ඩොග්වෙදර්

23

එක් ව්‍යාපෘතියකට ඔබේ පරිසර විචල්‍යයන් කළමනාකරණය කිරීමට ඔබට env පැකේජය භාවිතා කළ හැකිය :

  • .envව්‍යාපෘති නාමාවලිය යටතේ ගොනුවක් සාදන්න සහ ඔබේ සියලු විචල්‍යයන් එහි තබන්න.
  • ඔබගේ යෙදුම් ඇතුළත් කිරීමේ ගොනුවේ ඉහළින් මෙම රේඛාව එක් කරන්න:
    require('dotenv').config();

සිදු විය. දැන් ඔබට ඔබේ පරිසර විචල්‍යයන් සමඟ ප්‍රවේශ විය හැකිය process.env.ENV_NAME.


9
Dotenv පැකේජය ප්‍රයෝජනවත් වේ, නමුත් අසන ලද ප්‍රශ්නයට පිළිතුරු කියවීමේ ක්‍රියාවලිය මඟින් පිළිතුරු සපයයි. Env.ENV_VARIABLE. Dovenv පැකේජය යනු ගොනුවකින් පරිසරයට සැකසුම පැටවීමයි.
රොබට් පැටසන්

1
මගේ කාරණය එයයි: envපුස්තකාලයෙන් env විචල්‍යයන් කළමනාකරණය කර පැටවීම .
හුයි වෝ

1
ඔබට එය envdirඋපයෝගීතාව භාවිතයෙන් node.js නොවන ආකාරයකින් කළ හැකිය.
ක්‍රිස් ජොන්සන්

Github.com/bitrise-io/envman හා සමාන වන අතර එයද විශේෂිත නොවේ node.
මාර්ක්හූ

0

.bash_profileගොනුවේ පරිශීලක නාමාවලියෙහි ඒවා භාවිතා නොකරන්නේ ඇයි , එබැවින් ඔබේ විචල්‍යයන් සහිත ගොනු කිසිවක් නිෂ්පාදනයට තල්ලු කළ යුතු නොවේද?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.