SyntaxStudy
Sign Up
Node.js Beginner 8 min read

process.env and dotenv

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.

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