tgoop.com/the_developer_guide/5632
Last Update:
ู
ูููู
ุงูู Middleware ูู Next.js ๐ก
.
.
ุฃููุฏ ูุงุจูุช ุณููุงุฑูู ุฅูู ู
ุญุชุงุฌ ุชุชุญูู
ูู ุงูู requests ุงููู ุฏุงุฎูุฉ ูู
ููุนู ุฃู ุชุนู
ู checks ู
ุนููุฉ ูุจู ู
ุง ุงูู user ูุดูู ุงูู page. ู
ุซููุง:
- ู
ุญุชุงุฌ ุชู
ูุน user ู
ุด ุนุงู
ู login ุฅูู ูุฏุฎู ุตูุญุฉ ู
ุนููุฉ.
- ุฃู ุชุนู
ู redirect ูู user ู
ุด ุนูุฏู ุตูุงุญูุงุช.
- ุฃู ุญุชู ุชุถูู headers ุฃู ุชุนู
ู logging ููู request.
ุงูุญุชุฉ ุฏู ูู ุฃู app ุจุชุจูู critical ุฌุฏูุงุ ูุฃูู ุณุงุนุงุช ู
ุญุชุงุฌ layer ูุฏู ูู ุงููุต ุจูู request ุงูู user ูุงูู response ุงููู ุฑุงุฌุน. ูููุง ููุฌู ุฏูุฑ ุงูู Middleware...
โโโ
๐ฅ ูุนูู ุฅูู Middlewareุ
ุงูู Middleware ุจุจุณุงุทุฉ ุนุจุงุฑุฉ ุนู function ุจุชุชููุฐ ูุจู ู
ุง ุงูู request ููุตู ููู route.
ูุนูู ูู ูุงูู ูู ุญุงุฑุณ ุงูุจูุงุจุฉ: ุฃู request ูุงุฒู
ูุนุฏู ู
ูู ุงูุฃููุ ูุณุงุนุชูุง ุฃูุช ุชูุฏุฑ:
- ุชุบูุฑ ูู ุงูู request ุฃู ุงูู response.
- ุชุนู
ู redirect ุฃู rewrite.
- ุชู
ูุน requests ู
ุนููุฉ.
- ุฃู ุญุชู ุชุถูู logic ุฒู ุงูู authentication, logging, A/B testing, rate limitingโฆ ุฅูุฎ.
โโโ
๐ ุฅุฒุงู ุงูู Middleware ุจูุดุชุบู ูู Next.jsุ
ูู Next.js 13 (ูุงูู App Router)ุ ูู ุนุงูุฒ ุชุนู
ู Middleware ุจุชุถูู ู
ูู ุจุงุณู
:
middleware.ts or middleware.js
ูู ุงูู root ุจุชุงุน ุงูู project.
ุงูู function ุงูุฃุณุงุณูุฉ ุจุชููู ูุฏู:
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
export function middleware(req: NextRequest) {
// Example: check if user is authenticated
const token = req.cookies.get('token')
if (!token) {
return NextResponse.redirect(new URL('/login', req.url))
}
return NextResponse.next()
}
export const config = {
matcher: ['/dashboard/:path*'],
}
โ ุงููู ุจูุญุตู ููุง:
- ุฃู request ุฏุงุฎู ุนูู /dashboard/* ูุงุฒู ูุนุฏู ู ู ุงูู middleware.
- ูู ู ููุด token: ูุชุนู ู redirect ุนูู /login.
- ูู ููู token: ููู ู ุนุงุฏู.
โโโ
โก๏ธ ุฃูู ู ู ูุฒุงุช ุงูู Middleware ูู Next.js:
1- ุงูู Edge Runtime:
ุจูุชููุฐ ุนูู ุงูู Edge (Cloudflare Workers/Akamaiโฆ ุฅูุฎ) ูุนูู ultra fast ูู ุด ู ุญุชุงุฌ server ุชููู.
2- ุงูู Lightweight:
ู ุด ู ุนู ูู ุฅูู ูุดูู logic ุชููู ุฌุฏูุงุ ูู ุจุณ layer ุณุฑูุนุฉ ููู requests.
3- ุงูู Selective Matching:
ุชูุฏุฑ ุชุญุฏุฏ routes ู ุนููุฉ ุจุณ ุงููู ุชุนุฏู ู ู ุงูู middleware ุนู ุทุฑูู ุงูู matcher.
4- ุนูุฏู Use Cases ู ุชููุนุฉ:
- Authentication & Authorization.
- Redirects & Rewrites.
- A/B Testing
- Bot Protection.
- Internationalization
โโโ
ุฎูู ุจุงูู ุฅู ุงูู Middleware ู ุด ู ูุงู ุชุญุท ููู ูู ุงูู business logic ุจุชุงุนูุ ูู ู ุนู ูู ููุญุงุฌุงุช ุงููู ู ุญุชุงุฌุฉ ุชุชููุฐ ุจุณุฑุนุฉ ููุจู ู ุง ุงูู request ูุฑูุญ ููู route.
ูุนูู authentication, headers, redirectsโฆ ุญุงุฌุงุช ูุฏู. ููู ุงูู heavy logic ู ูุงููุง ู ุด ููุง.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
BY DevGuide ๐ต๐ธ
Share with your friend now:
tgoop.com/the_developer_guide/5632