ملف route.js
تسمح لك معالجات المسارات (Route Handlers) بإنشاء معالجات طلبات مخصصة لمسار معين باستخدام واجهات برمجة التطبيقات Request و Response الخاصة بالويب.
طرق HTTP
يسمح لك ملف المسار بإنشاء معالجات طلبات مخصصة لمسار معين. يتم دعم طرق HTTP التالية: GET
, POST
, PUT
, PATCH
, DELETE
, HEAD
, و OPTIONS
.
export async function GET(request: Request) {}
export async function HEAD(request: Request) {}
export async function POST(request: Request) {}
export async function PUT(request: Request) {}
export async function DELETE(request: Request) {}
export async function PATCH(request: Request) {}
// إذا لم يتم تعريف `OPTIONS`، سيقوم Next.js تلقائيًا بتنفيذ `OPTIONS` وتعيين رأس الاستجابة `Allow` المناسب بناءً على الطرق الأخرى المعرفة في معالج المسار.
export async function OPTIONS(request: Request) {}
export async function GET(request) {}
export async function HEAD(request) {}
export async function POST(request) {}
export async function PUT(request) {}
export async function DELETE(request) {}
export async function PATCH(request) {}
// إذا لم يتم تعريف `OPTIONS`، سيقوم Next.js تلقائيًا بتنفيذ `OPTIONS` وتعيين رأس الاستجابة `Allow` المناسب بناءً على الطرق الأخرى المعرفة في معالج المسار.
export async function OPTIONS(request) {}
معلومة مفيدة: معالجات المسارات متاحة فقط داخل دليل
app
. لا تحتاج إلى استخدام مسارات API (pages
) ومعالجات المسارات (app
) معًا، حيث يجب أن تكون معالجات المسارات قادرة على التعامل مع جميع حالات الاستخدام.
المعاملات
request
(اختياري)
كائن request
هو كائن NextRequest، وهو امتداد لواجهة برمجة التطبيقات Request الخاصة بالويب. يمنحك NextRequest
تحكمًا أكبر في الطلب الوارد، بما في ذلك الوصول السهل إلى cookies
وكائن URL ممتد ومحلل nextUrl
.
context
(اختياري)
export async function GET(request, context: { params }) {
const team = params.team // '1'
}
حاليًا، القيمة الوحيدة لـ context
هي params
، وهو كائن يحتوي على معاملات المسار الديناميكي للمسار الحالي.
مثال | URL | params |
---|---|---|
app/dashboard/[team]/route.js | /dashboard/1 | { team: '1' } |
app/shop/[tag]/[item]/route.js | /shop/1/2 | { tag: '1', item: '2' } |
app/blog/[...slug]/route.js | /blog/1/2 | { slug: ['1', '2'] } |
NextResponse
يمكن لمعالجات المسارات تمديد واجهة برمجة التطبيقات Response الخاصة بالويب عن طريق إرجاع كائن NextResponse
. هذا يسمح لك بسهولة تعيين ملفات تعريف الارتباط (cookies) والرؤوس (headers) وإعادة التوجيه (redirect) وإعادة الكتابة (rewrite). عرض مرجع API.
سجل الإصدارات
الإصدار | التغييرات |
---|---|
v13.2.0 | تم تقديم معالجات المسارات. |