3.1 KiB
3.1 KiB
id | title | localeTitle | challengeType |
---|---|---|---|
587d7fb2367417b2b2512bf8 | Get Data from POST Requests | الحصول على البيانات من طلبات POST | 2 |
Description
/name
. انها نفس الطريق كما كان من قبل. قمنا بإعداد نموذج في صفحة HTML الأمامية. وسوف يقدم نفس البيانات من التمرين 10 (سلسلة الاستعلام). إذا تم تكوين محلل الجسم بشكل صحيح ، يجب أن تجد المعلمات في الكائن req.body
. إلقاء نظرة على المثال المعتاد للمكتبة:
route: POST '/library'رد باستخدام نفس كائن JSON كما كان من قبل:
urlencoded_body: userId=546&bookId=6754
req.body: {userId: '546', bookId: '6754'}
{name: 'firstname lastname'}
. اختبر إذا كانت نقطة النهاية تعمل باستخدام نموذج html الذي قدمناه في صفحة التطبيق الأولى.
نصيحة: هناك العديد من طرق http الأخرى بخلاف GET و POST. وبموجب الاتفاقية هناك تناظر بين الفعل http ، والعملية التي ستنفذها على الخادم. التعيين التقليدي هو:
POST (أحيانًا PUT) - إنشاء مورد جديد باستخدام المعلومات المرسلة مع الطلب ،
GET - قراءة مورد موجود بدون تعديله ،
PUT أو PATCH (أحيانًا POST) - تحديث مورد باستخدام البيانات تم الإرسال ،
DELETE => حذف مورد.
هناك أيضًا طريقتين أخريين تستخدمان للتفاوض على اتصال بالخادم. باستثناء GET ، يمكن أن تحتوي جميع الطرق الأخرى المذكورة أعلاه على حمولة (أي البيانات في نص الطلب). يعمل الوسيطة محلل الجسم مع هذه الأساليب كذلك.
Instructions
Tests
tests:
- text: "الاختبار 1: يجب أن تستجيب نقطة نهاية API الخاصة بك بالاسم الصحيح"
testString: 'getUserInput => $.post(getUserInput(''url'') + ''/name'', {first: ''Mick'', last: ''Jagger''}).then(data => { assert.equal(data.name, ''Mick Jagger'', ''Test 1: "POST /name" route does not behave as expected'') }, xhr => { throw new Error(xhr.responseText); })'
- text: "الاختبار 2: يجب أن تستجيب نقطة نهاية API الخاصة بك بالاسم الصحيح"
testString: 'getUserInput => $.post(getUserInput(''url'') + ''/name'', {first: ''Keith'', last: ''Richards''}).then(data => { assert.equal(data.name, ''Keith Richards'', ''Test 2: "POST /name" route does not behave as expected'') }, xhr => { throw new Error(xhr.responseText); })'
Challenge Seed
Solution
// solution required