عند العمل على الواجهة الخلفية للمشاريع، يعد التعامل مع الطلبات والاستجابات أمرًا بالغ الأهمية. تعد إدارة هذه الطلبات بكفاءة أمرًا ضروريًا للتواصل السلس بين العميل والخادم. فيما يلي بعض خصائص الطلب الشائعة والمهمة التي يجب أن يكون كل مطور على دراية بها.
req.ip في Express.js هي خاصية لكائن الطلب الذي يوفر عنوان IP للعميل الذي يقدم الطلب. تقوم بإرجاع سلسلة تمثل عنوان IP الخاص بالعميل.
التعامل مع الوكلاء:
افتراضيًا، إذا كان التطبيق خلف وكيل، فقد يُرجع req.ip عنوان IP الخاص بالوكيل بدلاً من عنوان IP الخاص بالعميل الحقيقي. للحصول على عنوان IP الصحيح للعميل، يمكنك تكوين Express للوثوق بالوكيل عن طريق تعيين وكيل الثقة.
app.set("trust proxy", true);
الآن، سيعيد req.ip عنوان IP الصحيح للعميل حتى عندما يكون خلف وكيل.
مثال:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
لاستخدام req.cookies نحتاج إلى تثبيت الحزمة التي تسمى البرامج الوسيطة لمحلل ملفات تعريف الارتباط. تُستخدم الخاصية للحصول على ملفات تعريف الارتباط التي يرسلها العميل في رأس ملفات تعريف الارتباط. ملفات تعريف الارتباط الموجودة في ملف تعريف الارتباط req.cookies غير موقعة، مما يعني أنه لم يتم تعديلها أو التحقق منها. يمكنك استخدام هذا للبيانات الأقل حساسية
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
لاستخدام req.signedCookies نحتاج إلى تثبيت الحزمة التي تسمى البرنامج الوسيط لمحلل ملفات تعريف الارتباط. يحتوي هذا على ملفات تعريف الارتباط التي تم توقيعها والتحقق منها للتأكد من عدم تغييرها. يتم تشفير ملفات تعريف الارتباط الموقعة بالمفتاح السري. يقوم req.signedCookies بتخزين ملفات تعريف الارتباط التي تم التحقق منها فقط.
كيفية تعيين ملفات تعريف الارتباط الموقعة:
لتعيين ملف تعريف ارتباط موقع، يمكنك استخدام الخيار الموقع: صحيح:
res.cookie('signedCookieName', 'signedValue', { signed: true });
مثال:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
req.params في Express.js هو كائن يحتوي على معلمات المسار من عنوان URL للطلب. يتم تسمية معلمات المسار بعناصر نائبة في مسار المسار، ويقوم req.params بتخزين القيم المقدمة من قبل العميل في عنوان URL لتلك العناصر النائبة.
يمكنك تحديد مسار بمعلمات باستخدام النقطتين (:) قبل اسم المعلمة.
مثال:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
req.query في Express.js هو كائن يحتوي على معلمات سلسلة الاستعلام من عنوان URL للطلب. سلاسل الاستعلام هي أزواج ذات قيمة أساسية تأتي بعد ؟ في عنوان URL ويتم استخدامها لتمرير بيانات إضافية إلى الخادم. يمكن تمرير استعلامات متعددة باستخدام &.
مثال لعنوان URL:
http://example.com/search?term=flowers&sort=asc
مثال:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
يحتوي على أزواج من البيانات ذات القيمة الرئيسية المرسلة من قبل العميل. بشكل افتراضي، قيمته غير محددة. يمكن ملء بيانات الجسم باستخدام برامج وسيطة مدمجة مثل Express.json وurlencoded({ Extend: true })، أو برامج وسيطة خارجية مثل محلل الجسم.
الكود التالي يساعدك على الفهم
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
آمل أن تجد هذا مفيدًا! لا تنسى الإعجاب والحفظ للرجوع إليها في المستقبل. برمجة سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3