4.1 KiB
title | localeTitle |
---|---|
Nodejs- Buffer | Nodejs-Buffer |
буфер
Двоичный - это просто набор или набор из 1
и 0
. Каждое число в двоичном формате, каждое 1 и 0 в наборе называется бит . Компьютер преобразует данные в этот двоичный формат для хранения и выполнения операций. Например, следующие пять различных двоичных файлов:
10, 01, 001, 1110, 00101011
JavaScript не имеет данных байтового типа в своем основном API. Для обработки двоичных данных Node.js включает реализацию двоичного буфера с глобальным модулем Buffer
.
Создание буфера
Существуют различные способы создания буфера в Node.js. Вы можете создать пустой буфер размером 10 байт.
const buf1 = Buffer.alloc(10);
Из строк с кодировкой UTF-8 создание происходит так:
const buf2 = Buffer.from('Hello World!');
При создании буфера существуют разные принятые кодировки:
- ASCII
- UTF-8
- base64:
- latin1
- двоичный
- наговор
В Buffer API есть три отдельные функции для использования и создания новых буферов. В приведенных выше примерах мы видели alloc()
и from()
. Третий - allocUnsafe()
.
const buf3 = Buffer.allocUnsafe(10);
При возврате эта функция может содержать старые данные, которые необходимо перезаписать.
Взаимодействие с буфером
Существуют различные взаимодействия, которые могут быть выполнены с помощью Buffer API. Здесь мы рассмотрим большинство из них. Начнем с преобразования буфера в JSON.
let bufferOne = Buffer.from('This is a buffer example.');
console.log(bufferOne);
// Output: <Buffer 54 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 20 65 78 61 6d 70 6c 65 2e>
let json = JSON.stringify(bufferOne);
console.log(json);
// Output: {"type": "Buffer", "data": [84,104,105,115,32,105,115,32,97,32,98,117,102,102,101,114,32,101,120,97,109,112,108,101,46]}
JSON указывает, что тип преобразуемого объекта - это буфер и его данные. Преобразование пустого буфера в JSON покажет нам, что он содержит только нули.
const emptyBuf = Buffer.alloc(10);
emptyBuf.toJSON();
// Output: { "type": "Buffer", "data": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }
toJSON()
внимание, что Buffer API также предоставляет прямую функцию toJSON()
для преобразования буфера в объект JSON. Чтобы проверить размер буфера, мы можем использовать метод length
.
emptyBuf.length;
// Output: 10
Теперь позвольте нам преобразовать буфер в читаемую строку, в нашем случае, кодировку utf-8.
console.log(bufferOne.toString('utf8'));
// Output: This is a buffer example.
.toString()
по умолчанию преобразует буфер в строку формата utf-8. Вот как вы декодируете буфер. Если вы укажете кодировку, вы можете преобразовать буфер в другую кодировку
console.log(bufferOne.toString('base64'));