Как разработчик продукта и системный архитектор, я склонен часто использовать буфер 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 г.