Node.js - บัฟเฟอร์

JavaScript บริสุทธิ์เป็นมิตรกับ Unicode แต่ไม่เป็นเช่นนั้นสำหรับข้อมูลไบนารี ในขณะที่จัดการกับสตรีม TCP หรือระบบไฟล์จำเป็นต้องจัดการสตรีมแบบออคเต็ต Node จัดเตรียมคลาส Buffer ซึ่งจัดเตรียมอินสแตนซ์ในการจัดเก็บข้อมูลดิบที่คล้ายกับอาร์เรย์ของจำนวนเต็ม แต่สอดคล้องกับการจัดสรรหน่วยความจำดิบนอกฮีป V8

คลาสบัฟเฟอร์เป็นคลาสส่วนกลางที่สามารถเข้าถึงได้ในแอปพลิเคชันโดยไม่ต้องนำเข้าโมดูลบัฟเฟอร์

การสร้างบัฟเฟอร์

Node Buffer สามารถสร้างได้หลายวิธี

วิธีที่ 1

ต่อไปนี้เป็นไวยากรณ์สำหรับสร้างบัฟเฟอร์ที่ไม่ได้ฝึกหัดของ 10 อ็อกเต็ต -

var buf = new Buffer(10);

วิธีที่ 2

ต่อไปนี้เป็นไวยากรณ์ในการสร้าง Buffer จากอาร์เรย์ที่กำหนด -

var buf = new Buffer([10, 20, 30, 40, 50]);

วิธีที่ 3

ต่อไปนี้เป็นไวยากรณ์สำหรับสร้าง Buffer จากสตริงที่กำหนดและประเภทการเข้ารหัสที่เป็นทางเลือก -

var buf = new Buffer("Simply Easy Learning", "utf-8");

แม้ว่า "utf8" จะเป็นการเข้ารหัสเริ่มต้น แต่คุณสามารถใช้การเข้ารหัสต่อไปนี้ "ascii", "utf8", "utf16le", "ucs2", "base64" หรือ "hex"

เขียนถึงบัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการเขียนลงใน Node Buffer -

buf.write(string[, offset][, length][, encoding])

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • string - นี่คือข้อมูลสตริงที่จะเขียนลงในบัฟเฟอร์

  • offset- นี่คือดัชนีของบัฟเฟอร์ที่จะเริ่มเขียนเมื่อ ค่าดีฟอลต์คือ 0

  • length- นี่คือจำนวนไบต์ที่จะเขียน ค่าดีฟอลต์คือ buffer.length

  • encoding- การเข้ารหัสเพื่อใช้ 'utf8' เป็นการเข้ารหัสเริ่มต้น

ส่งคืนค่า

วิธีนี้ส่งคืนจำนวนอ็อกเต็ตที่เขียน หากมีพื้นที่ว่างไม่เพียงพอในบัฟเฟอร์เพื่อให้พอดีกับสตริงทั้งหมดก็จะเขียนส่วนหนึ่งของสตริง

ตัวอย่าง

buf = new Buffer(256);
len = buf.write("Simply Easy Learning");

console.log("Octets written : "+  len);

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

Octets written : 20

อ่านจากบัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการอ่านข้อมูลจาก Node Buffer -

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

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • encoding- การเข้ารหัสเพื่อใช้ 'utf8' เป็นการเข้ารหัสเริ่มต้น

  • start - ดัชนีเริ่มต้นเพื่อเริ่มการอ่านค่าเริ่มต้นคือ 0

  • end - สิ้นสุดดัชนีเพื่อสิ้นสุดการอ่านค่าเริ่มต้นคือบัฟเฟอร์ที่สมบูรณ์

ส่งคืนค่า

วิธีนี้ถอดรหัสและส่งคืนสตริงจากข้อมูลบัฟเฟอร์ที่เข้ารหัสโดยใช้การเข้ารหัสชุดอักขระที่ระบุ

ตัวอย่าง

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString('ascii'));       // outputs: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   // outputs: abcde
console.log( buf.toString('utf8',0,5));    // outputs: abcde
console.log( buf.toString(undefined,0,5)); // encoding defaults to 'utf8', outputs abcde

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

แปลง Buffer เป็น JSON

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการแปลง Node Buffer เป็นออบเจ็กต์ JSON -

buf.toJSON()

ส่งคืนค่า

วิธีนี้ส่งคืนการแสดง JSON ของอินสแตนซ์ Buffer

ตัวอย่าง

var buf = new Buffer('Simply Easy Learning');
var json = buf.toJSON(buf);

console.log(json);

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

{ type: 'Buffer',
   data: 
   [ 
      83,
      105,
      109,
      112,
      108,
      121,
      32,
      69,
      97,
      115,
      121,
      32,
      76,
      101,
      97,
      114,
      110,
      105,
      110,
      103 
   ]
}

บัฟเฟอร์เชื่อมต่อกัน

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการต่อบัฟเฟอร์โหนดเข้ากับ Node Buffer เดียว -

Buffer.concat(list[, totalLength])

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • list - รายการอาร์เรย์ของวัตถุบัฟเฟอร์ที่จะเชื่อมต่อกัน

  • totalLength - นี่คือความยาวทั้งหมดของบัฟเฟอร์เมื่อต่อกัน

ส่งคืนค่า

วิธีนี้ส่งคืนอินสแตนซ์บัฟเฟอร์

ตัวอย่าง

var buffer1 = new Buffer('TutorialsPoint ');
var buffer2 = new Buffer('Simply Easy Learning');
var buffer3 = Buffer.concat([buffer1,buffer2]);

console.log("buffer3 content: " + buffer3.toString());

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

buffer3 content: TutorialsPoint Simply Easy Learning

เปรียบเทียบบัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการเปรียบเทียบสองโหนดบัฟเฟอร์ -

buf.compare(otherBuffer);

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • otherBuffer - นี่คือบัฟเฟอร์อื่น ๆ ที่จะนำไปเปรียบเทียบกับ buf

ส่งคืนค่า

ส่งคืนตัวเลขที่ระบุว่ามาก่อนหรือหลังหรือเหมือนกับบัฟเฟอร์อื่น ๆ ตามลำดับการจัดเรียง

ตัวอย่าง

var buffer1 = new Buffer('ABC');
var buffer2 = new Buffer('ABCD');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 +" comes before " + buffer2);
} else if(result === 0) {
   console.log(buffer1 +" is same as " + buffer2);
} else {
   console.log(buffer1 +" comes after " + buffer2);
}

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

ABC comes before ABCD

คัดลอกบัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการคัดลอกบัฟเฟอร์โหนด -

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

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • targetBuffer - วัตถุบัฟเฟอร์ที่จะคัดลอกบัฟเฟอร์

  • targetStart - ตัวเลขทางเลือกค่าเริ่มต้น: 0

  • sourceStart - ตัวเลขทางเลือกค่าเริ่มต้น: 0

  • sourceEnd - Number, Optional, Default: buffer.length

ส่งคืนค่า

ไม่มีค่าส่งคืน คัดลอกข้อมูลจากพื้นที่ของบัฟเฟอร์นี้ไปยังพื้นที่ในบัฟเฟอร์เป้าหมายแม้ว่าขอบเขตหน่วยความจำเป้าหมายจะทับซ้อนกับแหล่งที่มา หากไม่ได้กำหนดไว้พารามิเตอร์ targetStart และ sourceStart จะดีฟอลต์เป็น 0 ในขณะที่ sourceEnd มีค่าดีฟอลต์เป็น buffer.length

ตัวอย่าง

var buffer1 = new Buffer('ABC');

//copy a buffer
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

buffer2 content: ABC

สไลซ์บัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการรับบัฟเฟอร์ย่อยของบัฟเฟอร์โหนด -

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

พารามิเตอร์

นี่คือคำอธิบายของพารามิเตอร์ที่ใช้ -

  • start - ตัวเลขทางเลือกค่าเริ่มต้น: 0

  • end - Number, Optional, Default: buffer.length

ส่งคืนค่า

ส่งคืนบัฟเฟอร์ใหม่ซึ่งอ้างอิงหน่วยความจำเดียวกันกับหน่วยความจำเก่า แต่หักล้างและครอบตัดโดยดัชนีเริ่มต้น (ค่าเริ่มต้นเป็น 0) และสิ้นสุด (ค่าเริ่มต้นเป็น buffer.length) ดัชนีเชิงลบเริ่มต้นจากจุดสิ้นสุดของบัฟเฟอร์

ตัวอย่าง

var buffer1 = new Buffer('TutorialsPoint');

//slicing a buffer
var buffer2 = buffer1.slice(0,9);
console.log("buffer2 content: " + buffer2.toString());

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

buffer2 content: Tutorials

ความยาวบัฟเฟอร์

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของวิธีการรับขนาดของโหนดบัฟเฟอร์เป็นไบต์ -

buf.length;

ส่งคืนค่า

ส่งคืนขนาดของบัฟเฟอร์เป็นไบต์

ตัวอย่าง

var buffer = new Buffer('TutorialsPoint');

//length of the buffer
console.log("buffer length: " + buffer.length);

เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

buffer length: 14

วิธีการอ้างอิง

ซีเนียร์ วิธีการและคำอธิบาย
1

new Buffer(size)

จัดสรรบัฟเฟอร์ใหม่ของขนาดอ็อกเท็ต โปรดทราบว่าขนาดต้องไม่เกิน kMaxLength มิฉะนั้น RangeError จะถูกโยนมาที่นี่

2

new Buffer(buffer)

คัดลอกข้อมูลบัฟเฟอร์ที่ส่งผ่านไปยังอินสแตนซ์ Buffer ใหม่

3

new Buffer(str[, encoding])

จัดสรรบัฟเฟอร์ใหม่ที่มี str ที่กำหนด การเข้ารหัสเริ่มต้นเป็น 'utf8'

4

buf.length

ส่งคืนขนาดของบัฟเฟอร์เป็นไบต์ โปรดทราบว่านี่ไม่ใช่ขนาดของเนื้อหาเสมอไป ความยาวหมายถึงจำนวนหน่วยความจำที่จัดสรรสำหรับวัตถุบัฟเฟอร์ จะไม่เปลี่ยนแปลงเมื่อเนื้อหาของบัฟเฟอร์มีการเปลี่ยนแปลง

5

buf.write(string[, offset][, length][, encoding])

เขียนสตริงไปยังบัฟเฟอร์ที่ออฟเซ็ตโดยใช้การเข้ารหัสที่กำหนด ชดเชยค่าเริ่มต้นเป็น 0 ค่าเริ่มต้นการเข้ารหัสเป็น 'utf8' ความยาวคือจำนวนไบต์ที่จะเขียน ส่งคืนจำนวนอ็อกเต็ตที่เขียน

6

buf.writeUIntLE(value, offset, byteLength[, noAssert])

เขียนค่าลงในบัฟเฟอร์ที่ออฟเซ็ตและ byteLength ที่ระบุ รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต ค่าเริ่มต้นเป็นเท็จ

7

buf.writeUIntBE(value, offset, byteLength[, noAssert])

เขียนค่าลงในบัฟเฟอร์ที่ออฟเซ็ตและ byteLength ที่ระบุ รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต ค่าเริ่มต้นเป็นเท็จ

8

buf.writeIntLE(value, offset, byteLength[, noAssert])

เขียนค่าลงในบัฟเฟอร์ที่ออฟเซ็ตและ byteLength ที่ระบุ รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต ค่าเริ่มต้นเป็นเท็จ

9

buf.writeIntBE(value, offset, byteLength[, noAssert])

เขียนค่าลงในบัฟเฟอร์ที่ออฟเซ็ตและ byteLength ที่ระบุ รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต ค่าเริ่มต้นเป็นเท็จ

10

buf.readUIntLE(offset, byteLength[, noAssert])

เวอร์ชันทั่วไปของวิธีการอ่านตัวเลขทั้งหมด รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

11

buf.readUIntBE(offset, byteLength[, noAssert])

เวอร์ชันทั่วไปของวิธีการอ่านตัวเลขทั้งหมด รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

12

buf.readIntLE(offset, byteLength[, noAssert])

เวอร์ชันทั่วไปของวิธีการอ่านตัวเลขทั้งหมด รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

13

buf.readIntBE(offset, byteLength[, noAssert])

เวอร์ชันทั่วไปของวิธีการอ่านตัวเลขทั้งหมด รองรับความแม่นยำสูงสุด 48 บิต ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

14

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

ถอดรหัสและส่งคืนสตริงจากข้อมูลบัฟเฟอร์ที่เข้ารหัสโดยใช้การเข้ารหัสชุดอักขระที่ระบุ

15

buf.toJSON()

ส่งกลับการแสดง JSON ของอินสแตนซ์ Buffer JSON.stringify เรียกใช้ฟังก์ชันนี้โดยปริยายเมื่อกำหนดอินสแตนซ์บัฟเฟอร์

16

buf[index]

รับและตั้งค่าออคเต็ตที่ดัชนี ค่าอ้างถึงแต่ละไบต์ดังนั้นช่วงกฎหมายจึงอยู่ระหว่าง 0x00 ถึง 0xFF hex หรือ 0 และ 255

17

buf.equals(otherBuffer)

ส่งคืนบูลีนหากบัฟเฟอร์นี้และ otherBuffer มีไบต์เดียวกัน

18

buf.compare(otherBuffer)

ส่งคืนตัวเลขที่ระบุว่าบัฟเฟอร์นี้มาก่อนหรือหลังหรือเหมือนกับบัฟเฟอร์อื่น ๆ ในลำดับการจัดเรียง

19

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

คัดลอกข้อมูลจากพื้นที่ของบัฟเฟอร์นี้ไปยังพื้นที่ในบัฟเฟอร์เป้าหมายแม้ว่าขอบเขตหน่วยความจำเป้าหมายจะทับซ้อนกับแหล่งที่มา หากไม่ได้กำหนดไว้พารามิเตอร์ targetStart และ sourceStart จะดีฟอลต์เป็น 0 ในขณะที่ sourceEnd มีค่าดีฟอลต์เป็น buffer.length

20

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

ส่งคืนบัฟเฟอร์ใหม่ที่อ้างอิงหน่วยความจำเดียวกันกับดัชนีเก่า แต่ชดเชยและครอบตัดโดยดัชนีเริ่มต้น (ค่าเริ่มต้นเป็น 0) และสิ้นสุด (ค่าเริ่มต้นเป็น buffer.length) ดัชนีเชิงลบเริ่มต้นจากจุดสิ้นสุดของบัฟเฟอร์

21

buf.readUInt8(offset[, noAssert])

อ่านจำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

22

buf.readUInt16LE(offset[, noAssert])

อ่านจำนวนเต็ม 16 บิตที่ไม่ได้ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

23

buf.readUInt16BE(offset[, noAssert])

อ่านจำนวนเต็ม 16 บิตที่ไม่ได้ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

24

buf.readUInt32LE(offset[, noAssert])

อ่านจำนวนเต็ม 32 บิตที่ไม่ได้ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

25

buf.readUInt32BE(offset[, noAssert])

อ่านจำนวนเต็ม 32 บิตที่ไม่ได้ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

26

buf.readInt8(offset[, noAssert])

อ่านจำนวนเต็ม 8 บิตที่ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

27

buf.readInt16LE(offset[, noAssert])

อ่านจำนวนเต็ม 16 บิตที่ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

28

buf.readInt16BE(offset[, noAssert])

อ่านจำนวนเต็ม 16 บิตที่ลงนามจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

29

buf.readInt32LE(offset[, noAssert])

อ่านจำนวนเต็ม 32 บิตที่เซ็นชื่อจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

30

buf.readInt32BE(offset[, noAssert])

อ่านจำนวนเต็ม 32 บิตที่เซ็นชื่อจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

31

buf.readFloatLE(offset[, noAssert])

อ่านโฟลต 32 บิตจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

32

buf.readFloatBE(offset[, noAssert])

อ่านโฟลต 32 บิตจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

33

buf.readDoubleLE(offset[, noAssert])

อ่าน 64 บิตสองเท่าจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

34

buf.readDoubleBE(offset[, noAssert])

อ่าน 64 บิตสองเท่าจากบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของ offset หมายความว่าค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ ค่าเริ่มต้นเป็นเท็จ

35

buf.writeUInt8(value, offset[, noAssert])

เขียนค่าลงในบัฟเฟอร์ที่ออฟเซ็ตที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและออฟเซ็ตอาจเกินจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งโดยไม่โต้ตอบ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

36

buf.writeUInt16LE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

37

buf.writeUInt16BE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

38

buf.writeUInt32LE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

39

buf.writeUInt32BE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

40

buf.writeInt8(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 8 บิตที่ลงชื่อถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

41

buf.writeInt16LE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 16 บิตที่ลงชื่อถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

42

buf.writeInt16BE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 16 บิตที่ลงชื่อถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและออฟเซ็ตอาจเกินจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งโดยไม่โต้ตอบ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

43

buf.writeInt32LE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 32 บิตที่ลงชื่อถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

44

buf.writeInt32BE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นจำนวนเต็ม 32 บิตที่ลงชื่อถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งโดยไม่โต้ตอบ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

45

buf.writeFloatLE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ โปรดทราบว่าค่าต้องเป็นทศนิยม 32 บิตที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

46

buf.writeFloatBE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ หมายเหตุค่าต้องเป็นทศนิยม 32 บิตที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ลดลงอย่างเงียบ ๆ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

47

buf.writeDoubleLE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ หมายเหตุค่าต้องเป็นคู่ 64 บิตที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและออฟเซ็ตอาจเกินจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งโดยไม่โต้ตอบ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

48

buf.writeDoubleBE(value, offset[, noAssert])

เขียนค่าไปยังบัฟเฟอร์ที่ออฟเซ็ตที่ระบุด้วยรูปแบบ endian ที่ระบุ หมายเหตุค่าต้องเป็นคู่ 64 บิตที่ถูกต้อง ตั้งค่า noAssert เป็น true เพื่อข้ามการตรวจสอบความถูกต้องของค่าและออฟเซ็ต หมายความว่าค่าอาจใหญ่เกินไปสำหรับฟังก์ชันเฉพาะและค่าชดเชยอาจอยู่เลยจุดสิ้นสุดของบัฟเฟอร์ซึ่งนำไปสู่ค่าที่ถูกทิ้งโดยไม่โต้ตอบ ไม่ควรใช้เว้นแต่คุณจะมั่นใจในความถูกต้อง ค่าเริ่มต้นเป็นเท็จ

49

buf.fill(value[, offset][, end])

เติมบัฟเฟอร์ด้วยค่าที่ระบุ หากไม่ได้กำหนดค่าชดเชย (ค่าเริ่มต้นเป็น 0) และสิ้นสุด (ค่าเริ่มต้นเป็น buffer.length) มันจะเติมเต็มบัฟเฟอร์ทั้งหมด

วิธีการเรียน

ซีเนียร์ วิธีการและคำอธิบาย
1

Buffer.isEncoding(encoding)

ส่งคืนค่าจริงหากการเข้ารหัสเป็นอาร์กิวเมนต์การเข้ารหัสที่ถูกต้องมิฉะนั้นจะเป็นเท็จ

2

Buffer.isBuffer(obj)

ทดสอบว่า obj เป็นบัฟเฟอร์หรือไม่

3

Buffer.byteLength(string[, encoding])

ระบุความยาวไบต์ที่แท้จริงของสตริง การเข้ารหัสเริ่มต้นเป็น 'utf8' ไม่เหมือนกับ String.prototype.length เนื่องจาก String.prototype.length ส่งคืนจำนวนอักขระในสตริง

4

Buffer.concat(list[, totalLength])

ส่งคืนบัฟเฟอร์ซึ่งเป็นผลมาจากการรวมบัฟเฟอร์ทั้งหมดในรายการเข้าด้วยกัน

5

Buffer.compare(buf1, buf2)

เช่นเดียวกับ buf1.compare (buf2) มีประโยชน์สำหรับการจัดเรียงอาร์เรย์ของบัฟเฟอร์