process.env gives you access to operating system environment variables. In development, use the dotenv package to load variables from a .env file. Never commit your .env file to version control.
Node.js
Beginner
8 min read
process.env and dotenv
Example
// Install dotenv:
// npm install dotenv
// .env file (add to .gitignore!):
// PORT=3000
// DB_HOST=localhost
// DB_PORT=5432
// DB_NAME=myapp
// DB_USER=admin
// DB_PASS=supersecret
// JWT_SECRET=my_super_secret_key
// NODE_ENV=development
// app.js — load .env at the top:
require('dotenv').config();
const PORT = process.env.PORT || 3000;
const DB_HOST = process.env.DB_HOST || 'localhost';
const NODE_ENV = process.env.NODE_ENV || 'development';
console.log(`Environment: ${NODE_ENV}`);
console.log(`DB: ${DB_HOST}`);
// Validate required env vars at startup:
const required = ['DB_HOST', 'DB_USER', 'DB_PASS', 'JWT_SECRET'];
for (const key of required) {
if (!process.env[key]) {
console.error(`Missing required env var: ${key}`);
process.exit(1);
}
}
// .gitignore — always include:
// .env
// .env.local
// .env.*.local