Next JS

Next.js Middleware দিয়ে রিয়েল লাইফ ইউজ কেস

Next.js Middleware দিয়ে রিয়েল লাইফ ইউজ কেস — Khairul-Bashar

Next.jsহলReactভিত্তিক একটি শক্তিশালী ফ্রেমওয়ার্ক, যা দিয়ে আমরা সহজে SEO-ফ্রেন্ডলি এবং ফাস্ট ওয়েব অ্যাপ বানাতে পারি। আর Next.js 12+ ভার্সন থেকেMiddlewareনামে একটি ফিচার এসেছে, যা দিয়ে আমরা রিকোয়েস্ট আসার আগেই কিছু প্রক্রিয়া করতে পারি।

এই পোস্টে আমরা শেখাবো:

  • Next.js Middleware কী?
  • এটা কবে ব্যবহার করব?
  • রিয়েল লাইফ উদাহরণ (যেমনঃ বাংলাদেশি ইউজারদের জন্য আলাদা পেজ রিডাইরেকশন)
  • এবং সম্পূর্ণ কোড সহ ব্যাখ্যা।



Next.jsMiddlewareমানে কী?

Middleware হল এমন একটা ফাংশন যা আপনার সাইটে কোন রিকোয়েস্ট আসার আগে রান হয়। এতে আপনি সেই রিকোয়েস্ট ইনস্পেক্ট করতে পারেন এবং চাইলে:

  • রিডাইরেক্ট করতে পারেন
  • রেসপন্স ব্লক করতে পারেন
  • হেডার, কুকি ইত্যাদি সেট করতে পারেন

এটি সার্ভার ও ক্লায়েন্ট দুই দিকেই কার্যকর।

Next.jsMiddlewareরিয়েল লাইফ ইউজ কেস

ধরেন আপনার সাইটে ইউজার আসছে বিভিন্ন দেশ থেকে। আপনি চান বাংলাদেশি ইউজার আসলে তারা /bd-home নামে আলাদা হোমপেজ দেখুক।

Middleware দিয়ে এটা খুব সহজ।



Step-by-step Middleware কোড উদাহরণ



📁 Next.jsMiddlewareফাইল স্ট্রাকচার:

/your-project
  └─ /middleware.ts (বা middleware.js)

Next.jsMiddlewareকোড:

import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

// Middleware function
export function middleware(request: NextRequest) {
  const country = request.geo?.country || 'UNKNOWN';

  // যদি ইউজার বাংলাদেশ থেকে আসে, তাকে bd-home এ রিডাইরেক্ট করো
  if (country === 'BD') {
    const url = request.nextUrl.clone();
    url.pathname = '/bd-home';
    return NextResponse.redirect(url);
  }

  // অন্যথায়, নরমাল রেসপন্স
  return NextResponse.next();
}

// কোন রুটে middleware চালু হবে তা নির্ধারণ করি
export const config = {
  matcher: ['/', '/home'],
};

🌐 Geo-location কিভাবে কাজ করে?

  • Next.js Middleware request.geo.country ব্যবহার করে ইউজারের লোকেশন বের করে।
  • এটি Vercel হোস্টিং-এ ডিফল্টভাবে Geo IP ডেটা দেয়।
  • যদি আপনি লোকালি রান করেন, Geo ডেটা আসবে না, তাই ভেরসেল বা অন্য edge-support হোস্টে এটা চেক করা ভালো।



✅ অন্য ইউজ কেস যেখানে Middleware দরকার হতে পারে

কাজের ধরনMiddleware দরকার?
লোকেশন বেইজড কনটেন্ট✅ হ্যাঁ
লগইন চেক করে রিডাইরেক্ট করা✅ হ্যাঁ
কুকি বা টোকেন চেক করা✅ হ্যাঁ
API রিকোয়েস্ট মডিফাই করা❌ না
UI কাস্টমাইজেশন (ক্লায়েন্ট সাইড)❌ না



🔐 লগইন রিডাইরেকশন উদাহরণ (এক্সট্রা):

export function middleware(request: NextRequest) {
  const token = request.cookies.get('auth_token');

  if (!token && request.nextUrl.pathname.startsWith('/dashboard')) {
    const loginUrl = request.nextUrl.clone();
    loginUrl.pathname = '/login';
    return NextResponse.redirect(loginUrl);
  }

  return NextResponse.next();
}

📘 শেষ কথা

Next.js Middleware আপনার সাইটকে আরও স্মার্ট করে তোলে। আপনি চাইলে Geo-location, লগইন চেক, URL রিডাইরেকশন এসব কাজ খুব সহজেই করতে পারবেন। উপরের উদাহরণ ব্যবহার করে আপনার পরবর্তী প্রজেক্টে এক্সপেরিমেন্ট করে দেখুন!

Leave a Reply