1563 votes

Lire les variables d'environnement dans Node.js

Existe-t-il un moyen de lire les variables d'environnement dans le code Node.js ?

Comme par exemple l'outil Python os.environ['HOME'] .

0 votes

Et si la même exigence avec react js ?

2188voto

Jayesh Points 7598
process.env.ENV_VARIABLE

Donde ENV_VARIABLE est le nom de la variable à laquelle vous souhaitez accéder.

Ver Documentation sur Node.js pour process.env .

5 votes

Notez que cela ne sera pas visible en dehors du processus du nœud et de ses sous-processus. Par exemple, il ne sera pas visible si vous déclenchez la fonction env dans une autre fenêtre du shell pendant que le processus du nœud est en cours d'exécution, ni dans le même shell après la sortie du processus du nœud.

28 votes

Cela fonctionne également pour l'affectation des variables. process.env.FOO = "foo"; travaux.

44 votes

Il convient de mentionner que cela ne fonctionne pas dans une application React. process.env est aseptisé pour des raisons de sécurité. Seules les variables qui commencent par REACT_ENV_ sont disponibles. Voir : github.com/facebookincubator/create-react-app/blob/master/

174voto

Subodh Ghulaxe Points 2346

Lorsque vous utilisez Node.js vous pouvez récupérer les variables d'environnement par clé à partir de l'onglet process.env objet :

par exemple

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

Voici la réponse qui explique définition des variables d'environnement dans node.js

74voto

Igor Litvinovich Points 1369

Pour récupérer les variables d'environnement dans Node.JS vous pouvez utiliser process.env.VARIABLE_NAME mais n'oubliez pas que l'affectation d'une propriété sur process.env convertira implicitement la valeur en chaîne de caractères.

Éviter la logique booléenne

Même si votre fichier .env définit une variable comme SHOULD_SEND=false o SHOULD_SEND=0 les valeurs seront converties aux chaînes de caractères ( "faux" et "0" respectivement) et ne sont pas interprétés comme des booléens.

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

Au lieu de cela, vous devez effectuer des contrôles explicites. J'ai constaté que le fait de dépendre du nom de l'environnement est très utile.

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

69voto

user2574650 Points 129

Si vous voulez utiliser une clé de chaîne générée dans votre programme Node.js, par exemple, var v = 'HOME' vous pouvez utiliser process.env[v] .

Autrement, process.env.VARNAME doit être codée en dur dans votre programme.

1 votes

Pourquoi avez-vous process.env['HOME'] ?

54voto

Huy Vo Points 1390

Vous pouvez utiliser env. pour gérer vos variables d'environnement par projet :

  • Créer un .env sous le répertoire du projet et mettez toutes vos variables.
  • Ajoutez cette ligne en haut du fichier d'entrée de votre application :
    require('dotenv').config();

Fait. Maintenant vous pouvez accéder à vos variables d'environnement avec process.env.ENV_NAME .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X