I would like to check if an environment variable is set in my Express JS server and perform different operations depending on whether or not it is set.
I've tried this:
if(process.env.MYKEY !== 'undefined'){ console.log('It is set!'); } else { console.log('No set!'); }
I'm testing without the process.env.MYKEY
but the console prints "It is set".
If you have defined NODE_ENV variable then you should be able to see this by typing node in the command prompt which will open the node cell and then type process. env. NODE_ENV .
You really do not need to set up your own environment to start learning Node. js. Reason is very simple, we already have set up Node.
This is working fine in my Node.js project:
if(process.env.MYKEY) { console.log('It is set!'); } else { console.log('No set!'); }
EDIT:
Note that, As @Salketer mentioned, depends on the needs, falsy value will be considered as false
in snippet above. In case a falsy value is considered as valid value. Use hasOwnProperty
or checking the value once again inside the block.
> x = {a: ''} { a: '' } > x.hasOwnProperty('a') true
Or, feel free to use the in operator
if ("MYKEY" in process.env) { console.log('It is set!'); } else { console.log('No set!'); }
I use this snippet to find out whether the environment variable is set
if ('DEBUG' in process.env) { console.log("Env var is set:", process.env.DEBUG) } else { console.log("Env var IS NOT SET") }
As mentioned in the NodeJS 8 docs:
The
process.env
property returns an object containing the user environment. See environ(7).[...]
Assigning a property on
process.env
will implicitly convert the value to a string.process.env.test = null console.log(process.env.test); // => 'null' process.env.test = undefined; console.log(process.env.test); // => 'undefined'
Though, when the variable isn't set in the environment, the appropriate key is not present in the process.env
object at all and the corresponding property of the process.env
is undefined
.
Here is another one example (be aware of quotes used in the example):
console.log(process.env.asdf, typeof process.env.asdf) // => undefined 'undefined' console.log('asdf' in process.env) // => false // after touching (getting the value) the undefined var // is still not present: console.log(process.env.asdf) // => undefined // let's set the value of the env-variable process.env.asdf = undefined console.log(process.env.asdf) // => 'undefined' process.env.asdf = 123 console.log(process.env.asdf) // => '123'
I moved this awkward and weird part of the answer away from StackOverflow: it is here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With