--- title: Nodejs- Buffer localeTitle: Nodejs-Buffer --- ## буфер Двоичный - это просто набор или набор из `1` и `0` . Каждое число в двоичном формате, каждое 1 и 0 в наборе называется _бит_ . Компьютер преобразует данные в этот двоичный формат для хранения и выполнения операций. Например, следующие пять различных двоичных файлов: `10, 01, 001, 1110, 00101011` JavaScript не имеет данных байтового типа в своем основном API. Для обработки двоичных данных Node.js включает реализацию двоичного буфера с глобальным модулем `Buffer` . ### Создание буфера Существуют различные способы создания буфера в Node.js. Вы можете создать пустой буфер размером 10 байт. ```javascript const buf1 = Buffer.alloc(10); ``` Из строк с кодировкой UTF-8 создание происходит так: ```javascript const buf2 = Buffer.from('Hello World!'); ``` При создании буфера существуют разные принятые кодировки: * ASCII * UTF-8 * base64: * latin1 * двоичный * наговор В Buffer API есть три отдельные функции для использования и создания новых буферов. В приведенных выше примерах мы видели `alloc()` и `from()` . Третий - `allocUnsafe()` . ```javascript const buf3 = Buffer.allocUnsafe(10); ``` При возврате эта функция может содержать старые данные, которые необходимо перезаписать. ### Взаимодействие с буфером Существуют различные взаимодействия, которые могут быть выполнены с помощью Buffer API. Здесь мы рассмотрим большинство из них. Начнем с преобразования буфера в JSON. ```javascript let bufferOne = Buffer.from('This is a buffer example.'); console.log(bufferOne); // Output: 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 покажет нам, что он содержит только нули. ```javascript 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` . ```javascript emptyBuf.length; // Output: 10 ``` Теперь позвольте нам преобразовать буфер в читаемую строку, в нашем случае, кодировку utf-8. ```javascript console.log(bufferOne.toString('utf8')); // Output: This is a buffer example. ``` `.toString()` по умолчанию преобразует буфер в строку формата utf-8. Вот как вы декодируете буфер. Если вы укажете кодировку, вы можете преобразовать буфер в другую кодировку ```javascript console.log(bufferOne.toString('base64')); ```