حافظه میانگیر (Buffer)، در لغت به معنای حائل یا میانگر می‌باشد که در علوم مختلف به شکلی متفاوت به مفهوم یک حافظهٔ میانجی یا موقت بکار می‌رود.

بافر یا buffer عمومأ در علوم کامپیوتر و الکترونیک بیشتر به کار می‌رود که معمولأ اشاره به حافظه موقت یک سیستم دارد.

مثال:

buffer size = 1Mb به معنی این است که حافظه موقت این سیستم برابر با ۱ مگابایت می‌باشد
یا: اندازه حافظه موقت = 1Mb

مثلاً در شیمی محلول بافر محلولی است که ph را ثابت نگه می‌دارد، بنابراین به کمک این محلول می‌توان در مراحل گوناگون یک فرایند شمیایی ph را ثابت نگه داشته و آن را اندازه‌گیری نماییم. مدارهای بافر نیز در الکترونیک مفهومی نزدیک به این دارند. به این صورت که داده‌های سیگنال دریافتی را در خود نگهداری نموده و بر حسب نیاز به سیستم بعدی تحویل می‌دهند. مدارهای بافر به‌طور کلی به دو دسته آنالوگ و دیجیتال تقسیم می‌شوند.

معرفی بافرها

بافر به فضایی از حافظه اشاره دارد که از آن برای ذخیره‌سازی موقت داده‌ها استفاده می‌شود. یک بافر به طور معمول، بین دستگاه‌هایی که از لحاظ سرعت با یکدیگر هماهنگ نیستند، مورد استفاده قرار می‌گیرد، به طوری که این بافرها بدون اینکه به داده‌ها آسیب برسانند، می‌توانند عملیات در حال اجرا را در یک سرعت به خصوص نگهدارند. از بافرها در node.js، زمانی استفاده می‌شود که با یک جریان فایل (دقت کنید منظور از جریان یا stream، دنباله ایی متوالی از داده‌ها است) یا جریان tcp که عمدتاً دارای داده‌های باینری (binary) یا هشت‌تایی (octets) هستند، روبرو می‌شویم.

 

برای استفاده از بافرها نیاز به وارد کردن ماژول خاصی نیست، یک کللاس عمومی از آبجکت global است که در همه جای برنامه میتوانید از متودهای آن استفاده کنید.

برخی از متودهای مربوط به کار بافرها

Buffer.alloc(size[, fill[, encoding]])

Buffer.allocUnsafe(size)

Buffer.from(string[, encoding])

buf.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])

Buffer.concat(list)

buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])

buf.equals(otherBuffer)

buf.fill(value)

buf.indexOf(value)

buf.length

buf.slice([start[, end]])

()buf.toJSON

buf.toString([encoding[, start[, end]]])