Nối vào bộ đệm nodejs
JavaScript thuần túy không xử lý tốt dữ liệu nhị phân thẳng, mặc dù JavaScript thân thiện với Unicode. Khi xử lý các luồng TCP và đọc và ghi vào hệ thống tệp, cần phải xử lý các luồng dữ liệu nhị phân thuần túy Show Nút có một số chiến lược để thao tác, tạo và sử dụng octet ( Một octet có thể được sử dụng để biểu thị các giá trị thập phân nằm trong khoảng từ 0 đến 255. ) dòng. Dữ liệu thô được lưu trữ trong các phiên bản của lớp Bộ đệm (được thiết kế để xử lý dữ liệu nhị phân thô) trong nút Ghi chú. Một octet là một đơn vị thông tin kỹ thuật số trong máy tính và viễn thông bao gồm tám bit. Thuật ngữ này thường được sử dụng khi thuật ngữ byte có thể mơ hồ, vì trong lịch sử không có định nghĩa tiêu chuẩn cho kích thước của byte Bộ đệm là một vùng lưu trữ bộ nhớ vật lý được sử dụng để lưu trữ tạm thời dữ liệu trong khi nó đang được di chuyển từ nơi này sang nơi khác. Trong nút, mỗi bộ đệm tương ứng với một số bộ nhớ thô được phân bổ bên ngoài V8. Bộ đệm hoạt động giống như một mảng các số nguyên, nhưng không thể thay đổi kích thước. Lớp Bộ đệm là toàn cầu. Nó xử lý trực tiếp dữ liệu nhị phân và có thể được xây dựng theo nhiều cách khác nhau Danh sách mã hóa, được sử dụng với nútChuyển đổi giữa các đối tượng chuỗi Bộ đệm và JavaScript yêu cầu một phương thức mã hóa rõ ràng. Bảng sau đây cho thấy các mã hóa chuỗi khác nhau Mã hóaMô tả'ascii'chỉ dành cho dữ liệu ASCII 7 bit. Phương pháp mã hóa này rất nhanh, nhưng bị giới hạn ở bộ ký tự ascii. Để chuyển đổi một ký tự null thành 0x00, bạn nên sử dụng 'utf8'. 'utf8'Các ký tự Unicode được mã hóa nhiều byte. Nó đã trở thành mã hóa ký tự thống trị cho web trên toàn thế giới. 'utf16le'2 hoặc 4 byte, các ký tự Unicode được mã hóa endian nhỏ, các cặp thay thế (U+10000 đến U+10FFFF) được hỗ trợ. 'ucs2'Bí danh của 'utf16le'. mã hóa chuỗi 'base64'Base64. 'binary'Phương pháp mã hóa dữ liệu nhị phân thô thành chuỗi bằng cách chỉ sử dụng 8 bit đầu tiên của mỗi ký tự. Phương pháp mã hóa này không được dùng nữa. 'hex'Phương thức này được sử dụng để mã hóa từng byte thành hai ký tự thập lục phân Tạo bộ đệm trong nútCó một số cách để tạo bộ đệm mới Bộ đệm mới (n) Bộ đệm mới(n) được sử dụng để tạo bộ đệm mới gồm 'n' octet, trong đó 'n' là một số Tranh luận TênMô tảTypenKích thước của bộ đệm. con số Trong ví dụ sau 'bộ đệm' chứa 10 octet Bộ đệm mới (mảng) bộ đệm mới(mảng) được sử dụng để tạo bộ đệm mới, sử dụng một mảng octet Tranh luận NameDescriptionTypearrMột mảng đã cho. mảng Trong ví dụ sau roll_no chứa nội dung của một mảng. Xem đầu ra Bộ đệm mới (str, [mã hóa]) new Buffer(str, [encoding]) được sử dụng để tạo một bộ đệm mới, chứa một chuỗi đã cho Tranh luận TênMô tảYêu cầu/Tùy chọnKiểu bắt đầuVị trí bắt đầu vào bộ đệm. Mặc định là 0. Tùy chọnnumberendEnd vị trí vào bộ đệm. Mặc định cho bộ đệm. chiều dài. số tùy chọn bộ đệm byte (npm) Thêm bộ đệm byte
Các hàm bytebuffer được sử dụng nhiều nhất
Phổ biến trong JavaScript
Làm cách nào để chuyển đổi tệp thành bộ đệm trong nodejs?Bạn chỉ cần tạo một bộ đệm mới với nó. . var fileBuffer = Bộ đệm. from(file) Nếu mã hóa của bạn KHÔNG phải là utf8, bạn có thể chỉ định mã hóa thay thế làm đối số tùy chọn thứ hai var fileBuffer = Bộ đệm. từ (tệp, 'base64'). fs. readFile(file, function(err, buffer){}) Bộ đệm trong Nodejs là gì?Bộ đệm là gì? . js được được thiết kế để xử lý dữ liệu nhị phân thô . Mỗi bộ đệm tương ứng với một số bộ nhớ thô được phân bổ bên ngoài V8. Bộ đệm hoạt động giống như mảng số nguyên, nhưng không thể thay đổi kích thước và có rất nhiều phương thức dành riêng cho dữ liệu nhị phân.
Bộ đệm có giống với Uint8Array không?Bộ đệm là một lớp con của Uint8Array chỉ khả dụng trong nodejs (vì lý do lịch sử). cả hai đều được sử dụng chủ yếu để thao tác dữ liệu nhị phân (byte). trong lịch sử, khi nodejs lần đầu tiên xuất hiện, Uint8Arrays có mục đích chung không tồn tại, vì vậy nó phải phát minh ra loại “Bộ đệm” của riêng mình để xử lý dữ liệu nhị phân.
ArrayBuffer có giống như bộ đệm không?Đối tượng ArrayBuffer được sử dụng để biểu thị bộ đệm dữ liệu nhị phân thô chung, có độ dài cố định . |