NextRequest
NextRequest يمتد واجهة طلب الويب (Web Request API) مع إضافة طرق إضافية لسهولة الاستخدام.
cookies
قراءة أو تعديل رأس Set-Cookie
للطلب.
set(name, value)
بالنظر إلى اسم، يقوم بتعيين ملف تعريف الارتباط (cookie) بالقيمة المعطاة في الطلب.
// بالنظر إلى الطلب الوارد /home
// تعيين ملف تعريف الارتباط لإخفاء اللافتة
// سيكون للطلب رأس `Set-Cookie:show-banner=false;path=/home`
request.cookies.set('show-banner', 'false')
get(name)
بالنظر إلى اسم ملف تعريف الارتباط، يقوم بإرجاع قيمته. إذا لم يتم العثور على ملف تعريف الارتباط، يتم إرجاع undefined
. إذا تم العثور على أكثر من ملف تعريف ارتباط، يتم إرجاع الأول.
// بالنظر إلى الطلب الوارد /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')
getAll()
بالنظر إلى اسم ملف تعريف الارتباط، يقوم بإرجاع قيم ملفات تعريف الارتباط. إذا لم يتم تحديد اسم، يتم إرجاع جميع ملفات تعريف الارتباط في الطلب.
// بالنظر إلى الطلب الوارد /home
// [
// { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
// { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// بدلاً من ذلك، الحصول على جميع ملفات تعريف الارتباط للطلب
request.cookies.getAll()
delete(name)
بالنظر إلى اسم ملف تعريف الارتباط، يقوم بحذفه من الطلب.
// إرجاع true إذا تم الحذف، false إذا لم يتم حذف أي شيء
request.cookies.delete('experiments')
has(name)
بالنظر إلى اسم ملف تعريف الارتباط، يقوم بإرجاع true
إذا كان ملف تعريف الارتباط موجودًا في الطلب.
// إرجاع true إذا كان ملف تعريف الارتباط موجودًا، false إذا لم يكن موجودًا
request.cookies.has('experiments')
clear()
إزالة رأس Set-Cookie
من الطلب.
request.cookies.clear()
nextUrl
يمتد واجهة URL
الأصلية مع إضافة طرق إضافية لسهولة الاستخدام، بما في ذلك خصائص خاصة بـ Next.js.
// بالنظر إلى طلب إلى /home، pathname هو /home
request.nextUrl.pathname
// بالنظر إلى طلب إلى /home?name=lee، searchParams هو { 'name': 'lee' }
request.nextUrl.searchParams
الخيارات التالية متاحة:
الخاصية | النوع | الوصف |
---|---|---|
basePath | string | المسار الأساسي لـ URL. |
buildId | string | undefined | معرف بناء تطبيق Next.js. يمكن تخصيصه. |
defaultLocale | string | undefined | اللغة الافتراضية لـ التدويل. |
domainLocale | ||
- defaultLocale | string | اللغة الافتراضية داخل النطاق. |
- domain | string | النطاق المرتبط بلغة محددة. |
- http | boolean | undefined | يشير إلى ما إذا كان النطاق يستخدم HTTP. |
locales | string[] | undefined | مصفوفة اللغات المتاحة. |
locale | string | undefined | اللغة النشطة حاليًا. |
url | URL | كائن URL. |
ip
خاصية ip
هي سلسلة تحتوي على عنوان IP للطلب. يمكن توفير هذه القيمة اختياريًا من خلال منصة الاستضافة الخاصة بك.
جيد للمعرفة: في Vercel، يتم توفير هذه القيمة افتراضيًا. في المنصات الأخرى، يمكنك استخدام رأس
X-Forwarded-For
لتوفير عنوان IP.
// يتم توفيره بواسطة Vercel
request.ip
// الاستضافة الذاتية
request.headers.get('X-Forwarded-For')
geo
خاصية geo
هي كائن يحتوي على المعلومات الجغرافية للطلب. يمكن توفير هذه القيمة اختياريًا من خلال منصة الاستضافة الخاصة بك.
جيد للمعرفة: في Vercel، يتم توفير هذه القيمة افتراضيًا. في المنصات الأخرى، يمكنك استخدام رأس
X-Forwarded-For
لتوفير عنوان IP، ثم استخدام خدمة طرف ثالث للبحث عن المعلومات الجغرافية.
// يتم توفيره بواسطة Vercel
request.geo.city
request.geo.country
request.geo.region
request.geo.latitude
request.geo.longitude
// الاستضافة الذاتية
function getGeo(request) {
let ip = request.headers.get('X-Forwarded-For')
// استخدام خدمة طرف ثالث للبحث عن المعلومات الجغرافية
}