freeCodeCamp/curriculum/challenges/arabic/05-apis-and-microservices/basic-node-and-express/use-body-parser-to-parse-po...

3.8 KiB

id title localeTitle challengeType
587d7fb2367417b2b2512bf7 Use body-parser to Parse POST Requests استخدام محلل body to Parse POST الطلبات 2

Description

بالإضافة إلى GET هناك فعل http شائع آخر ، هو POST. POST هي الطريقة الافتراضية المستخدمة لإرسال بيانات العميل بنماذج HTML. في REST convention يستخدم POST لإرسال البيانات لإنشاء عناصر جديدة في قاعدة البيانات (مستخدم جديد ، أو مشاركة مدونة جديدة). لا توجد لدينا قاعدة بيانات في هذا المشروع ، لكننا سنتعلم كيفية التعامل مع طلبات POST على أي حال. في هذا النوع من الطلبات لا تظهر البيانات في عنوان URL ، تكون مخفية في نص الطلب. هذا جزء من طلب HTML ، ويسمى أيضًا الحمولة. نظرًا لأن HTML يعتمد على النص ، حتى إذا لم تكن ترى البيانات ، فهذا لا يعني أنها سرية. يتم عرض المحتوى الأساسي لطلب HTTP POST أدناه:
POST /path/subpath HTTP/1.0
From: john@example.com
User-Agent: someBrowser/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 20
name=John+Doe&age=25
كما ترى ، يتم تشفير الجسم مثل سلسلة الاستعلام. هذا هو التنسيق الافتراضي المستخدم في نماذج HTML. مع Ajax يمكننا أيضا استخدام JSON لتكون قادرة على التعامل مع البيانات التي لديها بنية أكثر تعقيدا. هناك أيضًا نوع آخر من الترميز: multipart / form-data. هذا واحد يستخدم لتحميل الملفات الثنائية. في هذا التمرين ، سنستخدم هيئة urlencoded. لتحليل البيانات الواردة من طلبات POST ، يجب عليك تثبيت حزمة: محلل الجسم. تتيح لك هذه الحزمة استخدام سلسلة من البرامج الوسيطة ، والتي يمكن أن تفك شفرة البيانات بتنسيقات مختلفة. شاهد المستندات هنا . قم بتثبيت وحدة تحليل الجسم في الحزمة. json. ثم تطلب ذلك في الجزء العلوي من الملف. قم بتخزينه في متغير اسمه bodyParser. يتم إرجاع الوسيطة لمعالجة البيانات المشفرة بواسطة bodyParser.urlencoded({extended: false}) . extended=false هو خيار تكوين يخبر المحلل باستخدام التشفير التقليدي. عند استخدامه ، يمكن أن تكون القيم سلاسل أو صفائف فقط. النسخة الموسعة تسمح بمرونة أكبر للبيانات ، ولكن يفوقها JSON. تمرير إلى app.use() الدالة التي تم إرجاعها بواسطة استدعاء الأسلوب السابق. كالعادة ، يجب تركيب الوسيطة قبل كل الطرق التي تحتاجها.

Instructions

Tests

tests:
  - text: يجب تركيب الوسيطة 'body-parser'
    testString: 'getUserInput => $.get(getUserInput(''url'') + ''/_api/add-body-parser'').then(data => { assert.isAbove(data.mountedAt, 0, ''"body-parser" is not mounted correctly'') }, xhr => { throw new Error(xhr.responseText); })'

Challenge Seed

Solution

// solution required