اكسبريس ، معلمات الطلب

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

طلب المعلمات

لقد ذكرت كيف يحتفظ كائن الطلب بجميع معلومات طلب HTTP.

هذه هي الخصائص الرئيسية التي ستستخدمها على الأرجح:

خاصية وصف
.تطبيق يحمل إشارة إلى كائن تطبيق Express
.baseUrl المسار الأساسي الذي يستجيب عليه التطبيق
.جسم يحتوي على البيانات المقدمة في نص الطلب (يجب تحليلها وتعبئتها يدويًا قبل أن تتمكن من الوصول إليها)
.بسكويت يحتوي على ملفات تعريف الارتباط التي أرسلها الطلب (يحتاج إلىcookie-parserالوسيطة)
.hostname اسم المضيف كما هو محدد في ملفرأس HTTP المضيفالقيمة
.ip عنوان IP للعميل
.طريقة طريقة HTTP المستخدمة
.params المسار المسمى المعلمات
.طريق مسار URL
.بروتوكول بروتوكول الطلب
.استفسار كائن يحتوي على جميع سلاسل الاستعلام المستخدمة في الطلب
.يؤمن صحيح إذا كان الطلب آمنًا (يستخدم HTTPS)
.signedCookies يحتوي على ملفات تعريف الارتباط الموقعة التي تم إرسالها بواسطة الطلب (يحتاج إلىcookie-parserالوسيطة)
.xhr صحيح إذا كان الطلبXMLHttpRequest

كيفية استرداد معلمات سلسلة استعلام GET باستخدام Express

سلسلة الاستعلام هي الجزء الذي يأتي بعد مسار URL ، ويبدأ بعلامة استفهام?.

مثال:

?name=flavio

يمكن إضافة معامِلات استعلام متعددة باستخدام&:

?name=flavio&age=35

كيف تحصل على قيم سلسلة الاستعلام هذه في Express؟

Express يجعل الأمر سهلاً للغاية من خلال ملء ملفRequest.queryكائن بالنسبة لنا:

const express = require('express')
const app = express()

app.get(’/’, (req, res) => { console.log(req.query) })

app.listen(8080)

يتم تعبئة هذا الكائن بخاصية لكل معلمة استعلام.

إذا لم تكن هناك معلمات استعلام ، فسيكون كائنًا فارغًا.

هذا يجعل من السهل تكرارها باستخدام حلقة for… in:

for (const key in req.query) {
  console.log(key, req.query[key])
}

سيؤدي هذا إلى طباعة مفتاح خاصية الاستعلام والقيمة.

يمكنك الوصول إلى الخصائص الفردية أيضًا:

req.query.name //flavio
req.query.age //35

كيفية استرداد معلمات سلسلة استعلام POST باستخدام Express

يتم إرسال معلمات استعلام POST بواسطة عملاء HTTP على سبيل المثال عن طريق النماذج ، أو عند تنفيذ طلب POST لإرسال البيانات.

كيف يمكنك الوصول إلى هذه البيانات؟

إذا تم إرسال البيانات كـجسون، استخدامContent-Type: application/json، سوف تستخدم ملفexpress.json()الوسيطة:

const express = require('express')
const app = express()

app.use(express.json())

إذا تم إرسال البيانات باستخدامContent-Type: application/x-www-form-urlencoded، سوف تحتاج إلى استخدام ملفexpress.urlencoded()الوسيطة:

const express = require('express')
const app = express()

app.use(express.urlencoded({ extended: true }))

في كلتا الحالتين يمكنك الوصول إلى البيانات بالرجوع إليها منRequest.body:

app.post('/form', (req, res) => {
  const name = req.body.name
})

ملاحظة: تتطلب إصدارات Express القديمة استخدام ملفbody-parserوحدة لمعالجة بيانات POST. لم يعد هذا هو الحال بالنسبة لـ Express 4.16 (تم إصداره في سبتمبر 2017) والإصدارات الأحدث.

تحميل مجانيكتيب Express.js


المزيد من البرامج التعليمية السريعة: