Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • NestJS Documentation21টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Installation
  • Modules
  • Controllers
  • Providers & DI
  • Pipes
  • Guards
  • Interceptors
  • Exception Handling
  • Middleware
  • Database
  • Authentication
  • Config & Env
  • File Upload
  • WebSockets
  • Microservices
  • Swagger
  • Testing
  • Best Practices
  • Project
  • Interview
  1. Docs
  2. NestJS
  3. NestJS Middleware
NestJSIntermediate

NestJS Middleware

Custom middleware, functional middleware, DI, apply — NestJS middleware বাংলায়।

10টি অংশবাংলা ভাষায়

Middleware route handler-এর আগে execute হয় — logging, CORS, body parsing ইত্যাদি। NestJS-এ prototype (class) বা functional দুইভাবেই লেখা যায়।

Custom Middleware

src/common/logger.middleware.tstypescript
typescript
import { Injectable, NestMiddleware } from "@nestjs/common";
import { Request, Response, NextFunction } from "express";

@Injectable()
export class LoggerMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: NextFunction) {
    console.log("Request...", req.method, req.originalUrl);
    next();
  }
}

Module-এ Middleware Register

src/app.module.tstypescript
typescript
import { Module, NestModule, MiddlewareConsumer } from "@nestjs/common";
import { LoggerMiddleware } from "./common/logger.middleware";

@Module({
  imports: [],
  controllers: [],
  providers: [],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(LoggerMiddleware)
      .forRoutes("users"); // শুধু /users routes

    // সব route-এ চাইলে
    consumer.apply(LoggerMiddleware).forRoutes("*");

    // method restriction
    consumer.apply(LoggerMiddleware).forRoutes({
      path: "users",
      method: RequestMethod.POST,
    });
  }
}

Functional Middleware

src/common/request-id.middleware.tstypescript
typescript
import { Request, Response, NextFunction } from "express";
import { randomUUID } from "node:crypto";

export function requestIdMiddleware(
  req: Request,
  res: Response,
  next: NextFunction,
) {
  req.headers["x-request-id"] = randomUUID();
  next();
}

// register — class না, function
consumer.apply(requestIdMiddleware).forRoutes("*");

DI-যুক্ত Middleware

@Injectable()
export class AuthMiddleware implements NestMiddleware {
  // service inject করা যায়
  constructor(private readonly tokenService: TokenService) {}

  async use(req: Request, res: Response, next: NextFunction) {
    const token = req.headers.authorization?.split(" ")[1];
    if (token) {
      req["user"] = await this.tokenService.verify(token);
    }
    next();
  }
}
Middleware বনাম Guard

Middleware raw Express-এ কাজ করে — Pipe, Guard পূর্ণ context access পায়। Authentication logic গার্ডে রাখাই ভালো; middleware শুধু সহজ transform/logging-এর জন্য।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরNestJS Exception HandlingপরেরNestJS + MongoDB (Mongoose)
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com