Day 87

Environment Variables

10 min
JavaScript 100 Days

Environment variables sensitive data (API keys, passwords, DB URLs) code se bahar rakhti hain. Production, development, test environments ke liye alag configs hoti hain.

dotenv Setup

.env file aur dotenv package.

.env
bash
# .env file — KABHI git mein mat dalo!
# .gitignore mein add karo

NODE_ENV=development
PORT=3000

# Database
MONGODB_URI=mongodb://localhost:27017/myapp

# Authentication
JWT_SECRET=your-super-secret-key-min-32-chars
JWT_EXPIRES_IN=15m
REFRESH_TOKEN_SECRET=another-secret-key

# External APIs
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...

# Email
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your@gmail.com
SMTP_PASS=your-app-password

# .env.example — ye share karo (without values)
PORT=3000
MONGODB_URI=mongodb://localhost:27017/appname
JWT_SECRET=

Using Environment Variables

dotenv se variables load karo.

config.js
javascript
// app.js ke top par — sab se pehle
require("dotenv").config();

// Access karo
const PORT = process.env.PORT || 3000;
const MONGO_URI = process.env.MONGODB_URI;

// Validate on startup — missing vars early catch karo
function validateEnv() {
  const required = ["JWT_SECRET", "MONGODB_URI", "NODE_ENV"];
  const missing = required.filter(key => !process.env[key]);
  
  if (missing.length > 0) {
    console.error("Missing env vars:", missing.join(", "));
    process.exit(1); // start mat karo
  }
}

validateEnv();

🎯 Practice Challenge

Config module banao jo sab env variables validate kare aur typed object return kare. Test, dev, prod ke liye alag .env files banao.