1. Trang chủ
  2. » Thể loại khác

khai niem buffer trong nodejs

7 183 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 240,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm Buffer trong Node.js Javascript thuần được mã hóa Unicode một cách tiện lợi nhưng không thật sự tốt với các dữ liệu nhị phân.. Ghi dữ liệu vào Buffer trong Node.js Cú pháp Cú

Trang 1

Khái niệm Buffer trong Node.js

Javascript thuần được mã hóa Unicode một cách tiện lợi nhưng không thật sự tốt với các

dữ liệu nhị phân Khi làm việc với các luồng TCP hoặc hệ thống file, cần thiết phải xử lý các luồng dữ liệu bát phân Node.js cung cấp các lớp Buffer cho phép lưu trữ các dữ liệu thô như một mảng các số nguyên tương ứng với phần cấp phát bộ nhớ thô bên ngoài V8 heap Các lớp Buffer trong Node.js là các lớp toàn cục và có thể được truy cập trong ứng dụng

mà không cần khai báo các Buffer Module bởi phương thức require() như các Module khác

Tạo các Buffer trong Node.js

Buffer trong Node.js có thể được xây dựng theo nhiều cách khác nhau

Cách 1

Cú pháp cho việc tạo một Buffer cỡ 10:

var buf = new Buffer( 10 );

Cách 2

Cú pháp tạo một Buffer từ một mảng cho trước:

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

Cách 3

Cú pháp tạo một Buffer từ một chuỗi cho trước và với kiểu mã hóa tùy ý:

var buf = new Buffer( "Hoc Nodejs tai VietJack" , "utf-8" );

Mặc dù "utf8" là cách mã hóa mặc định nhưng bạn có thể sử dụng các cách mã hóa khác như "ascii", "utf8","base64", …

Trang 2

Ghi dữ liệu vào Buffer trong Node.js

Cú pháp

Cú pháp để ghi một Buffer trong Node.js là:

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

Chi tiết về tham số

string - Đây là một dữ liệu dạng chuỗi được ghi tới buffer

offset - Đây là chỉ mục để buffer bắt đầu ghi tại đó Giá trị mặc định là số 0

length - Số lượng các byte được ghi Mặc định là buffer.length

encoding - Mã hóa được sử dụng "utf8" là mã hóa mặc định

Giá trị trả về

Phương thức sẽ trả về số lượng các byte được ghi Nếu bộ nhớ trong buffer là không đủ để đáp ứng cho toàn bộ chuỗi, nó sẽ ghi một phần của chuỗi đó

Ví dụ minh họa cách ghi dữ liệu vào Buffer trong Node.js

Ở ví dụ này, mình sử dụng phương thức write() nhận tham số là dữ liệu dạng chuỗi để ghi

dữ liệu đó tới Buffer

buf = new Buffer( 256 ); len = buf.write( "Hoc Nodejs tai VietJack" );

console.log( "Tong so byte da ghi : " + len);

Khi chương trình trên được thực thi sẽ cho kết quả:

Tong so byte da ghi : 22

Đọc dữ liệu từ Buffer trong Node.js

Cú pháp

Cú pháp để đọc dữ liệu từ Buffer trong Node.js như sau:

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

Chi tiết về tham số

encoding - Là mã hóa để sử dụng Mã hóa mặc định là 'utf8'

Trang 3

start - Chỉ mục để bắt đầu hoạt động đọc, giá trị mặc định là 0

end - Chỉ mục để kết thúc hoạt động đọc, giá trị mặc định là độ dài của Buffer

Giá trị trả về

Phương thức này giải mã và trả về một chuỗi từ dữ liệu đã được mã hóa trong Buffer bởi

sử dụng bộ mã hóa cụ thể

Ví dụ minh họa cách đọc dữ liệu từ Buffer trong Node.js

buf = new Buffer( 26 ); for var i = 0 ; i < 26 i++) buf[ ] = i + 97 ; } console.log( buf.toString( 'ascii' )); // Ket qua:

abcdefghijklmnopqrstuvwxyz console.log( buf.toString( 'ascii' , , )); // Ket qua: abcde console.log( buf.toString( 'utf8' , , )); // Ket qua: abcde

console.log( buf.toString(undefined, , )); // Su dung ma hoa mac dinh 'utf8', Ket qua la: abcde

Khi chương trình trên được thực thi sẽ cho kết quả:

abcdefghijklmnopqrstuvwxyz abcde abcde abcde

Chuyển đổi Buffer thành JSON trong Node.js

Cú pháp

Để chuyển đổi một Buffer trong Node.js thành đối tượng JSON, bạn sử dụng phương thức toJSON() có cú pháp nhu sau:

buf.toJSON()

Giá trị trả về

Phương thức này trả về một biểu diễn JSON cho đối tượng Buffer đã cho

Ví dụ minh họa cách chuyển đổi Buffer thành JSON

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

Khi chương trình trên được thực thi sẽ cho kết quả:

[ 83 , 105 , 109 , 112 , 108 , 121 , 32 , 69 , 97 , 115 , 121 , 32 , 76 , 101 , 97 , 114 , 110 ,

105 , 110 , 103

Trang 4

Ghép nối các Buffer trong Node.js

Cú pháp

Để nối ghép hai hoặc nhiều Buffer thành một Buffer trong Node.js, bạn sử dụng phương thức concat() như sau:

Buffer.concat(list[, totalLength])

Chi tiết về tham số

list - Xác định một mảng các Buffer được sử dụng để ghép nối thành một Buffer

totalLength - Là tổng độ dài của các Buffer sau khi đã được ghép nối

Giá trị trả về

Phương thức này trả về một Buffer mới

Ví dụ minh họa cách ghép nối các Buffer

var buffer1 = new Buffer( 'VietJack cung cap loat bai huong dan mien phi ' ); var buffer2 = new Buffer( 'cho tat ca moi nguoi' ); var buffer3 =

Buffer.concat([buffer1,buffer2]); console.log( "Noi dung cua buffer3 la: "

buffer3.toString());

Khi chương trình trên được thực thi sẽ cho kết quả:

Noi dung cua buffer3 la: VietJack cung cap loat bai huong dan mien phi cho tat

ca moi nguoi

So sánh các Buffer trong Node.js

Cú pháp

Để so sánh hai Buffer trong Node.js, bạn sử dụng phương thức compare() như sau:

buf.compare(otherBuffer);

Chi tiết về tham số

otherBuffer - Một Buffer khác để được so sánh với Buffer có tên là buf

Giá trị trả về

Trả về một giá trị dạng số thể hiện Buffer này là đứng trước, sau hay cùng thứ tự với Buffer kia

Trang 5

Ví dụ minh họa cách so sánh hai Buffer trong Node.js

var buffer1 = new Buffer( 'ABC' ); var buffer2 = new Buffer( 'ABCD' ); var result = buffer1.compare(buffer2); if(result < 0 console.log(buffer1 + " dung truoc " buffer2); else if(result == ){ console.log(buffer1 + " cung thu

tu voi " buffer2); else console.log(buffer1 + " dung sau " buffer2);

Khi chương trình trên được thực thi sẽ cho kết quả:

ABC dung truoc ABCD

Sao chép Buffer trong Node.js

Cú pháp

Để sao chép Buffer trong Node.js, bạn sử dụng phương thức copy() như sau:

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

Chi tiết về tham số

targetBuffer - Đối tượng Buffer, đây là nơi Buffer sẽ được sao chép

targetStart - Dạng số, mặc định là 0

sourceStart - Dạng số, mặc định là 0

sourceEnd - Dạng số, mặc định là độ dài của buffer

Giá trị trả về

Phương thức copy() này không trả về bất kỳ giá trị nào

Ví dụ minh họa cách sao chép Buffer

var buffer1 = new Buffer( 'ABC' ); // Sao chep mot buffer var buffer2 = new Buffer( ); buffer1.copy(buffer2); console.log( "Noi dung cua buffer2 la: "

buffer2.toString());

Khi chương trình trên được thực thi sẽ cho kết quả:

Noi dung cua buffer2 la: ABC

Trang 6

Chia nhỏ Buffer trong Node.js

Cú pháp

Để lập một Buffer con của một Buffer trong Node.js, bạn sử dụng phương thức slice() như sau:

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

Chi tiết về tham số

start - Dạng số, giá trị mặc định là 0

end - Dạng số, giá trị mặc định là buffer.length

Giá trị trả về

Trả về một Buffer mới mà tham chiếu tới cùng vùng bộ nhớ như Buffer cũ

Ví dụ

var buffer1 = new Buffer( 'VietNamVoDoi' ); //Chia nho mot buffer var buffer2 = buffer1.slice( , ); console.log( "Noi dung cua buffer2 la: "

buffer2.toString());

Khi chương trình trên được thực thi sẽ cho kết quả:

Noi dung cua buffer2 la: VietNam

Độ dài Buffer trong Node.js

Cú pháp

Để lấy độ dài (bằng giá trị byte) của một Buffer trong Node.js, bạn sử dụng thuộc tính length như sau:

buf.length;

Giá trị trả về

Trả về độ dài bằng byte của một Buffer

Ví dụ

var buffer = new Buffer( 'VietNamVoDoi' ); //Do dai cua buffer console.log( "Do dai cua buffer la: " buffer.length);

Khi chương trình trên được thực thi sẽ cho kết quả:

Trang 7

Do dai cua buffer la: 12

Ngày đăng: 02/12/2017, 12:24

TỪ KHÓA LIÊN QUAN

w