⚙️
Auth, Testing & Deployment

Environment Config

dotenv aur NODE_ENV
💡 Env config EK APPLIANCE ka VOLTAGE SELECTOR hai — same machine, alag jagah alag setting. Code same rehta hai, sirf environment ki values badalti hain.

Secrets aur environment-specific values (DB URL, API keys, port) code mein HARDCODE nahi hone chahiye. dotenv .env file se values process.env mein load karta hai, aur .env HAMESHA .gitignore mein hona chahiye.

NODE_ENV=production Express ka behaviour badal deta hai — view caching on ho jaati hai aur error responses se stack traces hat jaate hain. Ye set karna performance aur security dono ke liye zaroori hai.

require("dotenv").config();      // sabse upar, kisi bhi import se pehle

const PORT = process.env.PORT || 3000;
const isProd = process.env.NODE_ENV === "production";

// .env  (gitignore mein hona chahiye)
// DATABASE_URL=postgres://...
// JWT_SECRET=super-secret-value
⚙️
Env config EK APPLIANCE ka VOLTAGE SELECTOR hai — same machine, alag jagah alag setting. Code same rehta hai, sirf environment ki values badalti hain.
1 / 2
⚡ Quick Recap
  • Secrets .env mein, aur .env kabhi git mein commit mat karo
  • dotenv.config() sabse pehle call karo taaki baaki modules ko values mil jayein
  • NODE_ENV=production caching on aur stack traces off karta hai
On this page (2 subtopics)

process.env ko poore codebase mein bikhaerne ke bajaye ek config module banao jo startup par sab values padhe, validate kare aur typed/default values export kare. Missing config par app ko FAIL FAST karna chahiye — chalte-chalte fail hone se behtar hai.

// config.js
require("dotenv").config();
const required = ["DATABASE_URL", "JWT_SECRET"];
for (const k of required)
  if (!process.env[k]) throw new Error(`Missing env: ${k}`);

module.exports = {
  port: Number(process.env.PORT) || 3000,
  isProd: process.env.NODE_ENV === "production",
  dbUrl: process.env.DATABASE_URL,
};

NODE_ENV=production Express mein view template caching on karta hai, error responses se stack trace hataata hai, aur kai libraries apne dev-only checks band kar deti hain. Production mein ye set na hona ek silent performance aur security issue hai.

💡Tip: Secrets ke liye .env sirf development mein theek hai — production mein platform ka secret manager (AWS Secrets Manager, Kubernetes secrets) use karo.