freeCodeCamp/guide/russian/nodejs/buffer/index.md

90 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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: <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 покажет нам, что он содержит только нули.
```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'));
```