48 votes

NodeJS définit la variable d'environnement pour exec

Je souhaite définir une variable d'environnement lors de l'exécution d'un programme via child_process.exec . Est-ce possible?

J'ai essayé de définir le env comme ceci :

 exec('FOO', {'FOO': 'ah'}, function(error, stdout, stderr) {console.log(stdout, stderr, error);});

mais le message résultant disait que FOO n'existait pas.

77voto

Chris F Points 1223

Vous devez passer un objet options qui inclut la clé env dont la valeur est elle-même un objet de paires clé-valeur.

 exec('echo $FOO', {env: {'FOO': 'ah'}}, function (error, stdout, stderr) 
{
    console.log(stdout, stderr, error);
});

22voto

rap-2-h Points 510

Sur la base de la réponse de @DanielSmedegaardBuus, vous devez ajouter votre env var à celles existantes, si vous souhaitez les conserver :

 exec(
  "echo $FOO", 
  { env: { ...process.env, FOO: "ah" } }, 
  function (error, stdout, stderr) {
    console.log(stdout, stderr, error);
  }
);

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