freeCodeCamp/guide/arabic/nodejs/buffer/index.md

3.6 KiB

title localeTitle
Nodejs- Buffer Nodejs- Buffer

متعادل

ثنائي هو ببساطة مجموعة أو مجموعة من 1 و 0 . يسمى كل رقم في الثنائي ، كل 1 و 0 في مجموعة بت . يقوم الكمبيوتر بتحويل البيانات إلى هذا التنسيق الثنائي لتخزين وتنفيذ العمليات. على سبيل المثال ، فيما يلي خمس ثنائيات مختلفة:

10, 01, 001, 1110, 00101011

لا تحتوي جافا سكريبت على بيانات نوع بايت في واجهة برمجة التطبيقات الأساسية. لمعالجة البيانات الثنائية يتضمن Node.js تطبيق مخزن مؤقت ثنائية مع وحدة نمطية عمومية تسمى Buffer .

خلق المخزن المؤقت

هناك طرق مختلفة يمكنك إنشاء مخزن مؤقت في Node.js. يمكنك إنشاء مخزن مؤقت فارغ بحجم 10 بايت.

const buf1 = Buffer.alloc(10);

من السلاسل UTF-8-encoded ، يكون الإنشاء كالتالي:

const buf2 = Buffer.from('Hello World!');

هناك ترميز مقبول مختلف عند إنشاء مخزن مؤقت:

  • أسكي
  • UTF-8
  • base64 في:
  • LATIN1
  • الثنائية
  • عرافة

هناك ثلاث وظائف منفصلة مخصصة في API Buffer لاستخدام وإنشاء مخازن جديدة. في الأمثلة أعلاه رأينا alloc() ومن from() . والثالث هو allocUnsafe() .

const buf3 = Buffer.allocUnsafe(10);

عند إعادتها ، قد تحتوي هذه الوظيفة على بيانات قديمة تحتاج إلى الكتابة فوقها.

التفاعلات مع المخزن المؤقت

هناك تفاعلات مختلفة يمكن إجراؤها باستخدام واجهة برمجة تطبيقات Buffer. سنقوم بتغطية معظمهم هنا. دعونا نبدأ بتحويل مخزن مؤقت إلى JSON.

`let bufferOne = Buffer.from('This is a buffer example.'); console.log(bufferOne);

// Output: <Buffer 54 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 20 65 78 61 6d 70 6c 65 2e>

let json = JSON.stringify(bufferOne); console.log(json);

// Output: {"type": "Buffer", "data": [84,104,105,115,32,105,115,32,97,32,98,117,102,102,101,114,32,101,120,97,109,112,108,101,46]} `

تحدد JSON أن نوع الكائن الذي تم تحويله هو Buffer ، وبياناته. سيظهر لنا تحويل مخزن مؤقت فارغ إلى JSON أنه لا يحتوي على أي شيء سوى الأصفار.

`const emptyBuf = Buffer.alloc(10);

emptyBuf.toJSON();

// Output: { "type": "Buffer", "data": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] } `

لاحظ أن Buffer API يوفر أيضًا دالة مباشرة toJSON() لتحويل مخزن مؤقت إلى كائن JSON. لفحص حجم المخزن المؤقت ، يمكننا استخدام طريقة length .

emptyBuf.length; // Output: 10

الآن دعونا تحويل المخزن المؤقت إلى سلسلة قابلة للقراءة ، في حالتنا ، ترميز utf-8.

`console.log(bufferOne.toString('utf8'));

// Output: This is a buffer example. `

.toString() بشكل افتراضي بتحويل مخزن مؤقت إلى سلسلة تنسيق utf-8. هذه هي الطريقة التي فك ترميز المخزن المؤقت. إذا قمت بتحديد ترميز ، يمكنك تحويل المخزن المؤقت إلى ترميز آخر

console.log(bufferOne.toString('base64'));