Express Middleware Explained
Express Middleware Explained (in Detail)
Middleware হলো Express.js এর সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলোর একটি। Middleware কে সহজ ভাষায় বলা যায়—Request এবং Response এর মাঝের একটা function যা Request আসার পর এবং Response যাওয়ার আগে প্রয়োজনীয় কাজগুলো করে।
Middleware কেন প্রয়োজন?
- Authentication যাচাই করার জন্য
- Logs তৈরি করার জন্য
- Request Body parse করার জন্য (JSON, Form Data)
- API Security সেট করার জন্য
- Route Access Control এর জন্য
- Error Handling এর জন্য
Middleware Function Structure
Middleware সবসময় ৩টি parameter নেয়:
(req, res, next)
- req → Incoming Request
- res → Outgoing Response
- next() → পরের Middleware বা Route এ পাঠানোর জন্য
Basic Middleware Example
// Custom Middleware
const myLogger = (req, res, next) => {
console.log("Request URL:", req.url);
next(); // Next middleware/route এ পাঠাবে
};
app.use(myLogger);
এটি প্রতিটি request এর URL console এ দেখাবে।
Types of Middleware in Express
- 1. Application-level Middleware
- 2. Router-level Middleware
- 3. Built-in Middleware
- 4. Third-party Middleware
- 5. Error-handling Middleware
১. Application-level Middleware
যে middleware পুরো application জুড়ে কাজ করে।
app.use((req, res, next) => {
console.log("App Level Middleware Working...");
next();
});
২. Router-level Middleware
শুধু নির্দিষ্ট Route বা Route Group এর জন্য middleware ব্যবহার করতে চাইলে Router-level Middleware ব্যবহার হয়।
const express = require("express");
const router = express.Router();
const routeLogger = (req, res, next) => {
console.log("Router Level Middleware Running");
next();
};
router.use(routeLogger);
router.get("/profile", (req, res) => {
res.send("User Profile Page");
});
app.use("/user", router);
৩. Built-in Middleware
Express নিজেই কিছু middleware দিয়ে থাকে।
- express.json() → JSON Body parse করে
- express.urlencoded() → Form data parse করে
- express.static() → Static files serve করে
// JSON body read করা
app.use(express.json());
// Static files
app.use(express.static("public"));
৪. Third-party Middleware
NPM থেকে Install করে ব্যবহার করা যায়।
- morgan → HTTP request logger
- cors → CORS enable করে
- helmet → Security enhance করে
// Third-party Middleware Example
const morgan = require("morgan");
app.use(morgan("dev"));
৫. Error Handling Middleware
Express এর Default Error Handler override করতে চাইলে এই middleware লাগে। Error-handling middleware এর signature হচ্ছে—(err, req, res, next)
// Error Handling Middleware
app.use((err, req, res, next) => {
console.error("Error:", err.message);
res.status(500).send("Something went wrong!");
});
Middleware Flow Diagram
Real-life Middleware Use Cases
- ✔ User Authentication Check (JWT verify)
- ✔ Admin Access Control
- ✔ Request Logging / Monitoring
- ✔ Rate Limiting
- ✔ IP Blocking
- ✔ Form / JSON validation
Example: Authentication Middleware
const authMiddleware = (req, res, next) => {
const token = req.headers.authorization;
if (!token) {
return res.status(401).send("Unauthorized Access");
}
console.log("User Verified");
next();
};
app.get("/dashboard", authMiddleware, (req, res) => {
res.send("Welcome to Dashboard");
});
Middleware Ordering Important?
হ্যাঁ! Express এ Middleware নিচের মতো order এ execute হয়:
- ১. Global Middleware
- ২. Route/method level middleware
- ৩. Route Handler
- ৪. Error Handler
Conclusion
Middleware হলো Express.js এর backbone। Middleware ছাড়া Authentication, Authorization, Input Validation, Logging, Security—কিছুই সম্পূর্ণ করা সম্ভব নয়। সুতরাং Backend Developer হিসেবে Middleware এর কাজ & ব্যবহার ভালোভাবে বুঝে রাখা অত্যন্ত জরুরি।
লোড হচ্ছে...
1. Express Middleware কী?
Middleware হলো এমন ফাংশন যা রিকোয়েস্ট ও রেসপন্সের মাঝখানে এক্সিকিউট হয় এবং রিকোয়েস্ট প্রসেস করতে সাহায্য করে।