7

Before you flame me, I've done my research (Javascript ENV variables). I know that it is not possible to access system environment variables using Javascript.

I'm using Yeoman to develop a Javascript library. That library is for use with Google Maps API and some of my tests require that Google Maps API as a dependency. To load the Google Maps API script, you need an API key. Now, my code is located on my Github and I really wouldn't like to have my API key as part of the code.

Is there any Node module that would be able to inject an environment variable into my tests when running Grunt? Are there any ENV variable equivalents in Node.js?

This is an example of a need for a JS ENV variable solution. There are other ways around the problem, but I am specifically looking for this type of a solution.

Edit: most importantly, how do I have these ENV variables auto load into my program when I run tests using grunt

Thank you!

Community
  • 1
  • 1
connorbode
  • 3,015
  • 1
  • 28
  • 31
  • Well, you can read environment variables with node.js - only a webpage loaded in a browser is not allowed too access the clients variables. However, I wouldn't use an env variable for my secret api keys :-) – Bergi Jan 23 '14 at 22:32
  • 1
    possible duplicate of [How to store Node.js deployment settings/configuration files?](http://stackoverflow.com/questions/5869216/how-to-store-node-js-deployment-settings-configuration-files) - and include them in your `gitignore` file. – Bergi Jan 23 '14 at 22:37

1 Answers1

8

Yes, you can access the environment variables in a Node script via the process object.

console.log(process.env.secret_key);

Storing your API keys in environment variables is much better than doing so in your repo.

Daniel
  • 38,041
  • 11
  • 92
  • 73