--- title: Nodejs- Buffer localeTitle: 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: 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')); `