"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > خصائص الطلب السريع الأساسية التي يجب أن يعرفها كل مطور

خصائص الطلب السريع الأساسية التي يجب أن يعرفها كل مطور

تم النشر بتاريخ 2024-11-08
تصفح:815

ssential Express Request Properties Every Developer Should Know

عند العمل على الواجهة الخلفية للمشاريع، يعد التعامل مع الطلبات والاستجابات أمرًا بالغ الأهمية. تعد إدارة هذه الطلبات بكفاءة أمرًا ضروريًا للتواصل السلس بين العميل والخادم. فيما يلي بعض خصائص الطلب الشائعة والمهمة التي يجب أن يكون كل مطور على دراية بها.

1.req.ip

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}`);
});

2.req.cookies

لاستخدام req.cookies نحتاج إلى تثبيت الحزمة التي تسمى البرامج الوسيطة لمحلل ملفات تعريف الارتباط. تُستخدم الخاصية للحصول على ملفات تعريف الارتباط التي يرسلها العميل في رأس ملفات تعريف الارتباط. ملفات تعريف الارتباط الموجودة في ملف تعريف الارتباط req.cookies غير موقعة، مما يعني أنه لم يتم تعديلها أو التحقق منها. يمكنك استخدام هذا للبيانات الأقل حساسية

import cookieParser from "cookie-parser";

app.use(cookieParser());

app.get('/example', (req, res) => {
  console.log(req.cookies);  // { cookieName: 'cookieValue' }
});

3. req.signedCookies

لاستخدام 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' }
});

4.req.params

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}`);
});

5. طلب ​​الاستعلام

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}`);
});

6.req.body

يحتوي على أزواج من البيانات ذات القيمة الرئيسية المرسلة من قبل العميل. بشكل افتراضي، قيمته غير محددة. يمكن ملء بيانات الجسم باستخدام برامج وسيطة مدمجة مثل 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);
})

آمل أن تجد هذا مفيدًا! لا تنسى الإعجاب والحفظ للرجوع إليها في المستقبل. برمجة سعيدة!

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/atul_thakre_a3ed87610e45f/6-essential-express-request-properties-every-developer-should-know-3ig7?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3