• 0

ماهي معاملات req, res في إطار العمل express.js

يوجد معاملات أساسية مع كل طلب أو مسار في إطار العمل express.js وهما req , res :

app.get('/test/:data', function(req, res){
    res.send('data: ' + req.params.data);
});

ماهي وظيفة هذه المعاملات؟ وهل يمكنني تغيير اسمائها إلى شيء آخر؟ وهل استخدامها معاً ضروري أو يمكن الاستغناء عنها في هذا التابع function ؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

req هو كائن يحتوي على معلومات حول طلب HTTP الذي أثار الحدث. استجابة للطلب ، يمكنك استخدام res لإعادة إرسال استجابة HTTP المطلوبة, يمكن تسمية هذه المعلمات بأي شيء. لنفترض انه لدينا هذا المسار

app.get('/Hello.json', function(request, response) { });

سيكون المتغير request كائن لديه هذه الخصائص على سبيل المثال:

  • request.url: والذي سيكون "/Hello.json" عند طلب هذا الإجراء المحدد
  • request.method: والذي سيكون "GET" في هذه الحالة ، ومن هنا يأتي استدعاء app.get ().
  • request.headers: مصفوفة من HTTP headers ، تحتوي على عناصر مثل request.headers.accept ، والتي يمكنك استخدامها لتحديد نوع المتصفح الذي قدم الطلب ، ونوع الاستجابات التي يمكنه التعامل معها ، وما إذا كان قادر على فهم ضغط HTTP أم لا ، إلخ.
  • request.query: مصفوفة من معاملات سلسلة طلب البحث ، إن وجدت, على سبيل المثال
    /Hello.json?foo=bar
    request.query.foo يحتوي على السلسلة "bar".

للرد على هذا الطلب ، يمكنك استخدام كائن response لبناء ردك كالمثال الآتي

app.get('/Hello.json', function(request, response) {
  response.contentType('application/json');

  var users = [
    { name: 'Mohammed', age: '20' },
    { name: 'Ali', age: '19' },
    { name: 'Sami', age: '18' }
  ];

  var usersJSON = JSON.stringify(users);

  response.send(usersJSON);
});

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

req: يحتوي هذا على شكل الطلب http الذي تقوم بارسالة اثناء التطبيق.ومن  أجل استقبال الرد من الطلب السابق، تستخدم res والذي تحتوي على اجابة طلب ال http.

يمكن اعادة تسمية هذه المتغيرات الي اي اسم تريده كما نرى في الكود التالي:

app.get('/user/:id', function(request, response){
  response.send('user ' + request.params.id);
});

اما عن استخدامها داخل app.get فهو فقط بتمريرهم داخل الطلب  كما نري في الكود التالي:

app.get('/people.json', function(request, response) {
  // هنا توضح شكل المحتوى حتي يستطيع المتصفح فهمه
  //  هذا هو شكل المحتوى على الشكل json
  response.contentType('application/json');

  //في الطبيعي، يكون العائد من قاعدة بيانات، لكن هنا يمكننا ان نضعها بشكل يدوى حتى نوضح الفكرة
  var people = [
    { name: 'Ahmed', location: 'Egypt' },
    { name: 'Mohammed', location: 'Jordan' },
    { name: 'mostafa', location: 'Sodan' }
  ];

  // حيث أن الطلب المرسل على صيغه json
  //  للتعامل مع البيانات القادمة JSON.stringify() يمكن أن نستخدم الدالة الداخلية  
  var peopleJSON = JSON.stringify(people);

  // هنا يمكننا ارسال النتائج التي عادت الينا الي المتصفح لعرضها

  response.send(peopleJSON);
});

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

req & res هي كائنات لتمرير طلب واستجابة HTTP 

  • req : هو كائن يحوي مجموعة من البيانات عند طلب HTTP مثل : parameters - queries - بيانات الحقول الكوكيز وغيرها 
  • res : تستخدم لإعادة ارسال الـ HTTP عند الإستتجابة عادة ما تكون بهذا الشكل : res.send, res.render, res.redirect

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن