عقدة المخازن

تعرف على ماهية المخازن المؤقتة للعقدة ، ولماذا يتم استخدامها ، وكيفية استخدامها

ما هو المخزن المؤقت؟

المخزن المؤقت هو منطقة من الذاكرة. مطورو JavaScript ليسوا على دراية بهذا المفهوم ، أقل بكثير من مطوري C أو C ++ أو Go (أو أي مبرمج يستخدم لغة برمجة النظام) ، الذين يتفاعلون مع الذاكرة كل يوم.

يمثل جزءًا ثابتًا من الذاكرة (لا يمكن تغيير حجمه) مخصصًا خارج محرك V8 JavaScript.

يمكنك التفكير في المخزن المؤقت كمصفوفة من الأعداد الصحيحة ، والتي يمثل كل منها بايتًا من البيانات.

يتم تنفيذه بواسطة العقدةفئة العازلة.

لماذا نحتاج إلى المخزن المؤقت؟

تم تقديم المخازن المؤقتة لمساعدة المطورين على التعامل مع البيانات الثنائية ، في نظام بيئي يتعامل تقليديًا فقط مع السلاسل بدلاً من الثنائيات.

المخازن المؤقتة مرتبطة ارتباطًا وثيقًا بـتيارات. عندما يتلقى معالج التدفق البيانات بشكل أسرع مما يمكنه استيعابها ، فإنه يضع البيانات في مخزن مؤقت.

التصور البسيط للمخزن المؤقت هو عندما تشاهد مقطع فيديو على YouTube ويتجاوز الخط الأحمر نقطة التصور الخاصة بك: فأنت تقوم بتنزيل البيانات بشكل أسرع مما تشاهدها ، ويقوم المتصفح بتخزينها مؤقتًا.

كيفية إنشاء المخزن المؤقت

يتم إنشاء مخزن مؤقت باستخدام ملفBuffer.from()وBuffer.alloc()، وBuffer.allocUnsafe()أساليب.

const buf = Buffer.from('Hey!')

يمكنك أيضًا تهيئة المخزن المؤقت الذي يمر بالحجم. يؤدي هذا إلى إنشاء مخزن مؤقت سعة 1 كيلوبايت

const buf = Buffer.alloc(1024)
//or
const buf = Buffer.allocUnsafe(1024)

باستخدام المخزن المؤقت

الوصول إلى محتوى المخزن المؤقت

يمكن الوصول إلى المخزن المؤقت ، باعتباره مصفوفة من البايت ، مثل المصفوفة:

const buf = Buffer.from('Hey!')
console.log(buf[0]) //72
console.log(buf[1]) //101
console.log(buf[2]) //121

هذه الأرقام هي رمز Unicode الذي يحدد الحرف في موضع المخزن المؤقت (H => 72 ، e => 101 ، y => 121)

يمكنك طباعة المحتوى الكامل للمخزن المؤقت باستخدام ملفtoString()طريقة:

console.log(buf.toString())

لاحظ أنه إذا قمت بتهيئة مخزن مؤقت برقم يحدد حجمه ، فستتمكن من الوصول إلى ذاكرة مُهيأة مسبقًا تحتوي على بيانات عشوائية ، وليس مخزنًا مؤقتًا فارغًا!

احصل على طول المخزن المؤقت

استخدم الlengthمنشأه:

const buf = Buffer.from('Hey!')
console.log(buf.length)

كرر محتويات المخزن المؤقت

const buf = Buffer.from('Hey!')
for (const item of buf) {
  console.log(item) //72 101 121 33
}

تغيير محتوى المخزن المؤقت

يمكنك الكتابة إلى المخزن المؤقت سلسلة كاملة من البيانات باستخدامwrite()طريقة:

const buf = Buffer.alloc(4)
buf.write('Hey!')

تمامًا كما يمكنك الوصول إلى مخزن مؤقت باستخدام بنية مصفوفة ، يمكنك أيضًا تعيين محتويات المخزن المؤقت بالطريقة نفسها:

const buf = Buffer.from('Hey!')
buf[1] = 111 //o
console.log(buf.toString()) //Hoy!

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

يمكن نسخ مخزن مؤقت باستخدام ملفcopy()طريقة:

const buf = Buffer.from('Hey!')
let bufcopy = Buffer.alloc(4) //allocate 4 bytes
buf.copy(bufcopy)

بشكل افتراضي ، تقوم بنسخ المخزن المؤقت بالكامل. تتيح لك 3 معلمات أخرى تحديد موضع البداية وموضع النهاية وطول المخزن المؤقت الجديد:

const buf = Buffer.from('Hey!')
let bufcopy = Buffer.alloc(2) //allocate 2 bytes
buf.copy(bufcopy, 0, 2, 2)
bufcopy.toString() //'He'

شريحة من المخزن المؤقت

إذا كنت تريد إنشاء تصور جزئي لمخزن مؤقت ، يمكنك إنشاء شريحة. الشريحة ليست نسخة: المخزن المؤقت الأصلي لا يزال مصدر الحقيقة. إذا تغير ذلك ، تتغير شريحتك.

استخدم الslice()طريقة إنشائه. المعلمة الأولى هي موضع البداية ، ويمكنك تحديد معلمة ثانية اختيارية مع موضع النهاية:

const buf = Buffer.from('Hey!')
buf.slice(0).toString() //Hey!
const slice = buf.slice(0, 2)
console.log(slice.toString()) //He
buf[1] = 111 //o
console.log(slice.toString())

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: