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) มีประโยชน์สำหรับการจัดเรียงอาร์เรย์ของบัฟเฟอร์ |