Is there a way to read environment variables in Node.js code?

Like for example Python's os.environ['HOME'].

9

Best Answer


process.env.ENV_VARIABLE

Where ENV_VARIABLE is the name of the variable you wish to access.

See Node.js docs for process.env.

When using Node.js, you can retrieve environment variables by key from the process.env object:

for example

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

Here is the answer that will explain setting environment variables in node.js

To retrieve environment variables in Node.JS you can use process.env.VARIABLE_NAME, but don't forget that assigning a property on process.env will implicitly convert the value to a string.

Avoid Boolean Logic

Even if your .env file defines a variable like SHOULD_SEND=false or SHOULD_SEND=0, the values will be converted to strings (“false” and “0” respectively) and not interpreted as booleans.

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

Instead, you should make explicit checks. I’ve found depending on the environment name goes a long way.

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

If you want to use a string key generated in your Node.js program, say, var v = 'HOME', you can useprocess.env[v].

Otherwise, process.env.VARNAME has to be hardcoded in your program.

You can use the dotenv package to manage your environment variables per project:

  • Create a .env file under the project directory and put all of your variables there as VAR_NAME=value pairs.
  • Add require('dotenv').config(); to the top of your application entry file.

Now you can access your environment variables with process.env.VAR_NAME.

Using process.env. If Home is your env variable name then Try this:

const HOME = process.env.HOME;

Or

const { HOME } = process.env;

If you want to see all the Enviroment Variables on execution time just write in some nodejs file like server.js:

console.log(process.env);

You first have to install the following library, ensuring you are in the root of your project:

npm i dotenv

Next create your .env file ensuring it is in the root of your project directory, here is an example of how to add a new variable within it:

# test variableTESTVARIABLE='The test variable is working, value pulled from local!'

Next you would have to reference this module/library in the file you wish to use the environment variable e.g index.js, at the top of the file add the following code:

require("dotenv").config();

Now you can use/obtain the environment variable like so:

const message = process.env['TESTVARIABLE'];

Why not use them in the Users directory in the .bash_profile file, so you don't have to push any files with your variables to production?