Body-parser

From binaryoption
Jump to navigation Jump to search
Баннер1

center|500px|مثال توضيحي

  1. Body-parser: تحليل بيانات الطلبات في تطبيقات الويب
    1. مقدمة

في عالم تطوير تطبيقات الويب، وخاصة تلك التي تعتمد على Node.js و Express.js، يعتبر التعامل مع بيانات الطلبات الواردة من المستخدمين أمرًا بالغ الأهمية. هذه البيانات قد تكون في أشكال مختلفة، مثل بيانات نموذجية (Form Data)، بيانات JSON، أو بيانات URL المشفرة. هنا يأتي دور `body-parser`، وهي حزمة (package) وسيطة (middleware) تعمل على تحليل هذه البيانات وتحويلها إلى تنسيق يسهل الوصول إليه واستخدامه داخل تطبيقك. هذه المقالة موجهة للمبتدئين وتهدف إلى شرح `body-parser` بتفصيل شامل، بدءًا من المفاهيم الأساسية وصولًا إلى الاستخدامات المتقدمة. سنناقش أيضًا أهمية `body-parser` في سياق الخوادم و بروتوكول HTTP.

    1. ما هو Body-parser؟

`body-parser` هي حزمة Node.js تقوم بتحليل أجسام طلبات HTTP الواردة. بشكل افتراضي، لا يوفر Express.js آلية مدمجة لتحليل أجسام الطلبات. لذلك، نحتاج إلى استخدام حزمة مثل `body-parser` للقيام بذلك. تقوم `body-parser` بتزويد وظائف لتحليل أنواع مختلفة من البيانات، بما في ذلك:

  • **URL-encoded form data:** البيانات التي يتم إرسالها من نماذج HTML باستخدام طريقة POST.
  • **JSON:** تنسيق تبادل البيانات الشائع المستخدم في تطبيقات الويب الحديثة.
  • **Raw:** البيانات الخام، مثل البيانات الثنائية.
  • **Text:** البيانات النصية العادية.
    1. لماذا نستخدم Body-parser؟

هناك عدة أسباب تجعل استخدام `body-parser` ضروريًا:

  • **سهولة الوصول إلى البيانات:** بدون `body-parser`، ستصل بيانات الطلب كـ `Buffer`، وهو تنسيق بيانات ثنائي. `body-parser` يحول هذه البيانات إلى كائنات JavaScript سهلة الاستخدام.
  • **دعم أنواع مختلفة من البيانات:** `body-parser` يوفر دعمًا لتحليل أنواع مختلفة من البيانات، مما يجعل تطبيقك أكثر مرونة.
  • **الأمان:** يمكن لـ `body-parser` المساعدة في حماية تطبيقك من الهجمات عن طريق التحقق من صحة البيانات الواردة.
  • **التكامل مع Express.js:** `body-parser` مصمم للعمل بسلاسة مع Express.js، مما يجعله خيارًا طبيعيًا لتطبيقات Express.js.
    1. تثبيت Body-parser

لتثبيت `body-parser`، استخدم مدير الحزم npm (Node Package Manager):

```bash npm install body-parser ```

    1. استخدام Body-parser في تطبيق Express.js

بعد تثبيت `body-parser`، يمكنك استخدامه في تطبيق Express.js الخاص بك. إليك مثال بسيط:

```javascript const express = require('express'); const bodyParser = require('body-parser');

const app = express();

// استخدام body-parser لتحليل بيانات JSON app.use(bodyParser.json());

// استخدام body-parser لتحليل بيانات URL-encoded app.use(bodyParser.urlencoded({ extended: false }));

app.post('/submit', (req, res) => {

 console.log('اسم المستخدم:', req.body.username);
 console.log('كلمة المرور:', req.body.password);
 res.send('تم استلام البيانات بنجاح!');

});

app.listen(3000, () => {

 console.log('الخادم يعمل على المنفذ 3000');

}); ```

في هذا المثال:

  • نستورد وحدتي `express` و `body-parser`.
  • ننشئ تطبيق Express.js جديدًا.
  • نستخدم `bodyParser.json()` لتحليل بيانات JSON الواردة. سيتم تخزين البيانات المحللة في `req.body`.
  • نستخدم `bodyParser.urlencoded({ extended: false })` لتحليل بيانات URL-encoded الواردة. `extended: false` يستخدم مكتبة `querystring` لتحليل البيانات، بينما `extended: true` يستخدم مكتبة `qs`، وهي أكثر قوة ولكنها قد تكون أبطأ.
  • نحدد مسار POST `/submit` الذي يتعامل مع البيانات المرسلة.
  • في داخل معالج المسار، يمكننا الوصول إلى البيانات المرسلة باستخدام `req.body`.
  • نستمع إلى المنفذ 3000.
    1. أنواع Body-parser المختلفة

`body-parser` يوفر عدة وظائف لتحليل أنواع مختلفة من البيانات. إليك نظرة عامة على بعض الأنواع الأكثر شيوعًا:

      1. 1. bodyParser.json()

يقوم بتحليل بيانات JSON الواردة. عادةً ما تستخدم هذه الوظيفة عندما يرسل العميل بيانات بتنسيق JSON.

مثال:

```javascript app.use(bodyParser.json());

app.post('/api/data', (req, res) => {

 console.log(req.body);
 res.send('تم استلام بيانات JSON');

}); ```

      1. 2. bodyParser.urlencoded({ extended: false })

يقوم بتحليل بيانات URL-encoded الواردة. عادةً ما تستخدم هذه الوظيفة عندما يرسل العميل بيانات من نموذج HTML باستخدام طريقة POST. كما ذكرنا سابقًا، `extended: false` يستخدم مكتبة `querystring` لتحليل البيانات.

مثال:

```javascript app.use(bodyParser.urlencoded({ extended: false }));

app.post('/submit', (req, res) => {

 console.log(req.body);
 res.send('تم استلام بيانات النموذج');

}); ```

      1. 3. bodyParser.urlencoded({ extended: true })

يشبه `bodyParser.urlencoded({ extended: false })`، ولكن يستخدم مكتبة `qs` لتحليل البيانات. `qs` أكثر قوة وتوفر ميزات إضافية، ولكنها قد تكون أبطأ.

مثال:

```javascript app.use(bodyParser.urlencoded({ extended: true }));

app.post('/submit', (req, res) => {

 console.log(req.body);
 res.send('تم استلام بيانات النموذج');

}); ```

      1. 4. bodyParser.raw()

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

مثال:

```javascript app.use(bodyParser.raw());

app.post('/upload', (req, res) => {

 console.log(req.body); // البيانات الخام
 res.send('تم استلام البيانات الخام');

}); ```

      1. 5. bodyParser.text()

يقوم بتحليل البيانات النصية العادية الواردة. عادةً ما تستخدم هذه الوظيفة عندما تحتاج إلى معالجة البيانات النصية التي ليست بتنسيق JSON أو URL-encoded.

مثال:

```javascript app.use(bodyParser.text());

app.post('/message', (req, res) => {

 console.log(req.body); // البيانات النصية
 res.send('تم استلام الرسالة النصية');

}); ```

    1. ترتيب استخدام Body-parser

من المهم ترتيب استخدام `body-parser` بشكل صحيح في تطبيق Express.js الخاص بك. يجب وضع `body-parser` قبل أي مسارات (routes) تحتاج إلى الوصول إلى بيانات الطلب. وإلا، فلن يتم تحليل البيانات قبل وصولها إلى معالج المسار.

مثال:

```javascript const express = require('express'); const bodyParser = require('body-parser');

const app = express();

// يجب وضع body-parser قبل المسارات app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false }));

app.post('/submit', (req, res) => {

 console.log(req.body);
 res.send('تم استلام البيانات');

});

app.listen(3000, () => {

 console.log('الخادم يعمل');

}); ```

    1. اعتبارات الأمان

عند استخدام `body-parser`، من المهم مراعاة بعض اعتبارات الأمان:

  • **التحقق من صحة البيانات:** يجب دائمًا التحقق من صحة البيانات الواردة قبل استخدامها. يمكن أن يساعد ذلك في منع الهجمات مثل حقن SQL وهجمات XSS.
  • **حد حجم الجسم:** يمكنك تحديد حد لحجم جسم الطلب لمنع الهجمات التي تستهدف استهلاك موارد الخادم. يمكنك القيام بذلك باستخدام خيارات `body-parser`.
  • **استخدام HTTPS:** يجب دائمًا استخدام HTTPS لتشفير البيانات المرسلة بين العميل والخادم.
    1. بدائل Body-parser

على الرغم من أن `body-parser` هو خيار شائع، إلا أن هناك بدائل أخرى متاحة. أحد البدائل الشائعة هو `express.json()` و `express.urlencoded()`، وهما وظيفتان مدمجتان في Express.js اعتبارًا من الإصدار 4.16.0. هاتان الوظيفتان توفران نفس الوظائف الأساسية التي يوفرها `body-parser`.

مثال:

```javascript const express = require('express');

const app = express();

// استخدام express.json() لتحليل بيانات JSON app.use(express.json());

// استخدام express.urlencoded() لتحليل بيانات URL-encoded app.use(express.urlencoded({ extended: false }));

// ... ```

    1. الخلاصة

`body-parser` هي حزمة Node.js أساسية لتطبيقات الويب التي تحتاج إلى معالجة بيانات الطلبات الواردة. يوفر `body-parser` وظائف لتحليل أنواع مختلفة من البيانات، مما يجعل تطبيقك أكثر مرونة وأمانًا. من خلال فهم كيفية استخدام `body-parser` بشكل صحيح، يمكنك بناء تطبيقات ويب قوية وقابلة للتطوير.

    1. روابط ذات صلة


ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер