Как разработчик продукта и системный архитектор, я склонен часто использовать буфер nodejs, и в этой статье я перечисляю команды и код, которые использую чаще всего.

Буферы Node.js предоставляют множество функций, которые вы можете использовать или не использовать, ознакомьтесь с ними здесь.

Это не полноценное руководство, я пытаюсь перечислить код Node.js, который использую чаще всего, и думаю, что он может помочь другим разработчикам.

Ищете другие классные руководства по Node.js? Проверьте их все здесь.

Давайте начнем.

Что такое буфер

Проще говоря, буфер — это необработанные двоичные данные, а двоичный файл состоит из битов, равных просто 0 или 1.

Таким образом, вы можете думать о буфере вроде 101010100001 в необработанном виде.

Буферные представления

Насколько я знаю, вы можете представить буфер в двух формах.

const Buffer = require(‘buffer’).Buffer;

OR

const buf = Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72,
 0x6c, 0x64]);

Первая форма — это необработанный блок памяти.

console.log(buf);
 // outputs <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

Форма 2, формат декодирования (может быть utf16le, utf8 и т. д.)

console.log(buf.toString(‘utf16le’));
 // outputs ‘敨汬潷汲’
 console.log(buf.toString(‘utf8’));
 // outputs ‘hello world’

Как создать буферы

Существует несколько способов создания буферов.

Вы можете создать с помощью неинициированного буфера из n октетов, как это.

const buffer = Buffer.alloc(8);

Вы также можете создать буфер, используя массив.

Это инициализирует буфер содержимым этого массива. Имейте в виду, что содержимое массива представляет собой целые числа, представляющие байты.

const buffer_array = Buffer.from([ 8, 6, 7, 5, 3, 0, 9]);

Вы также можете создать буфер из строки, я часто использую это.

const buffer_string = Buffer.from(“I’m a string!”, “utf-8”);

Кодировка по умолчанию — utf-8, поэтому вам не нужно ее передавать.

Буферные операции

Самый простой способ прочитать буфер и расшифровать эти 0 и 1 — преобразовать их в строку. Вот как.

buffer_string.toString();
 // read in different encoding
 buffer_string.toString(‘hex’);
 // read from 0 to 10.
 buffer_string.toString(‘utf-8’, 0, 10);

Вы также можете преобразовать буфер в JSON. Очень полезно, если вы читаете из базы данных, которая предоставляет поток.

const json = JSON.stringify(buffer_string);

JSON.stringify() внутренне использует функцию буфера toJSON().

Вы можете объединить несколько буферов вместе, чтобы создать один буфер, используя метод concat.

const joined_buffer = Buffer.concat([buffer_array,buffer_string]);

Вы можете сравнить два буфера вместе. Он возвращает 1, если первый буфер больше второго, -1, если нет, и 0, если оба совпадают.

buffer_string.compare(buffer_array)

Вы также можете скопировать буфер. У меня никогда не было варианта использования этой функции. Если вы это сделаете, пожалуйста, дайте мне знать.

buffer_string.copy(buffer_array);

Вы можете нарезать буфер так же, как и со строками.

const sliced_buffer = buffer_string.slice(0,10);

Вероятно, наиболее часто используемая функция, проверка длины буфера.

Вывод

Это некоторые из функций, которыми я часто пользуюсь. Это может помочь вам, если да, пожалуйста, дайте мне знать.

Я буду продолжать обновлять эту статью. Если вы хотите добавить некоторые функции буфера, которые вы считаете очень полезными, пожалуйста, прокомментируйте, я добавлю их в статью с указанием авторства.

Понравилась статья? Помогите нам расти и выпускать больше подобного контента, став профессионалом!
Стань профессионалом!

Первоначально опубликовано на codeforgeek.com 30 марта 2018 г.