Skip to content

Environment variables

Creating a .env file

It is common to store environment variables in the root of your project in a file called .env.

bash
touch .env

WARNING

Your .env file should almost never be checked in to version control. The file can contain sensitive information like database passwords. It is up to the environment to provide these variables, and they should not be part of the application code.

With that warning in mind, let's add .env to our .gitignore file:

.gitignore
node_modules
.env

Adding environment variables

Inside the .env file, we can define some variables.

.env
DB_USER=superadmin
DB_HOST=localhost
DB_PASSWORD=i8bfWDjhdV-zz3uyL2TaL

The dotenv package

The dotenv package makes environment variables available on the process.env global object.

bash
npm install dotenv

Using environment variables

In any file where we want the environment variables to be available, we can include the line import 'dotenv/config' at the top of the file.

js
// load dotenv at top of file
import 'dotenv/config'

// variables are now available on process.env
const dbConfig = {
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD
}

console.table(dbConfig)
console
┌──────────┬─────────────────────────┐
│ (index)  │         Values          │
├──────────┼─────────────────────────┤
│   host   │       'localhost'       │
│   user   │      'superadmin'       │
│ password │ 'i8bfWDjhdV-zz3uyL2TaL' │
└──────────┴─────────────────────────┘