Учебники

Node.js — Буферы

Чистый JavaScript удобен для Unicode, но не для двоичных данных. При работе с потоками TCP или файловой системой необходимо обрабатывать потоки октетов. Узел предоставляет класс Buffer, который предоставляет экземпляры для хранения необработанных данных, аналогичных массиву целых чисел, но соответствует необработанному выделению памяти вне кучи V8.

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

Создание буферов

Node Buffer может быть создан различными способами.

Способ 1

Ниже приведен синтаксис для создания непосвященного буфера из 10 октетов:

var buf = new Buffer(10);

Способ 2

Ниже приведен синтаксис для создания буфера из данного массива:

var buf = new Buffer([10, 20, 30, 40, 50]);

Способ 3

Ниже приведен синтаксис для создания буфера из заданной строки и, необязательно, типа кодирования:

var buf = new Buffer("Simply Easy Learning", "utf-8");

Хотя «utf8» является кодировкой по умолчанию, вы можете использовать любую из следующих кодировок «ascii», «utf8», «utf16le», «ucs2», «base64» или «hex».

Запись в буферы

Синтаксис

Ниже приведен синтаксис метода для записи в Node Buffer:

buf.write(string[, offset][, length][, encoding])

параметры

Вот описание используемых параметров —

  • строка — это строковые данные, которые будут записаны в буфер.

  • смещение — это индекс буфера, с которого начинается запись. Значение по умолчанию 0.

  • длина — это число байтов для записи. По умолчанию используется значение buffer.length.

  • кодировка — кодировка для использования. utf8 — кодировка по умолчанию.

строка — это строковые данные, которые будут записаны в буфер.

смещение — это индекс буфера, с которого начинается запись. Значение по умолчанию 0.

длина — это число байтов для записи. По умолчанию используется значение buffer.length.

кодировка — кодировка для использования. utf8 — кодировка по умолчанию.

Возвращаемое значение

Этот метод возвращает количество записанных октетов. Если в буфере недостаточно места для размещения всей строки, он запишет часть строки.

пример

Live Demo

buf = new Buffer(256);
len = buf.write("Simply Easy Learning");

console.log("Octets written : "+  len);

Когда вышеуказанная программа выполняется, она дает следующий результат —

Octets written : 20

Чтение из буфера

Синтаксис

Ниже приведен синтаксис метода для чтения данных из буфера узла:

buf.toString([encoding][, start][, end])

параметры

Вот описание используемых параметров —

  • кодировка — кодировка для использования. utf8 — кодировка по умолчанию.

  • start — Начальный индекс для начала чтения, по умолчанию 0.

  • end — конец индекса до конца чтения, по умолчанию это полный буфер.

кодировка — кодировка для использования. utf8 — кодировка по умолчанию.

start — Начальный индекс для начала чтения, по умолчанию 0.

end — конец индекса до конца чтения, по умолчанию это полный буфер.

Возвращаемое значение

Этот метод декодирует и возвращает строку из данных буфера, закодированных с использованием заданной кодировки набора символов.

пример

Live Demo

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString('ascii'));       // outputs: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   // outputs: abcde
console.log( buf.toString('utf8',0,5));    // outputs: abcde
console.log( buf.toString(undefined,0,5)); // encoding defaults to 'utf8', outputs abcde

Когда вышеуказанная программа выполняется, она дает следующий результат —

abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

Конвертировать буфер в JSON

Синтаксис

Ниже приведен синтаксис метода для преобразования Node Buffer в объект JSON:

buf.toJSON()

Возвращаемое значение

Этот метод возвращает JSON-представление экземпляра Buffer.

пример

Live Demo

var buf = new Buffer('Simply Easy Learning');
var json = buf.toJSON(buf);

console.log(json);

Когда вышеуказанная программа выполняется, она дает следующий результат —

{ type: 'Buffer',
   data: 
   [ 
      83,
      105,
      109,
      112,
      108,
      121,
      32,
      69,
      97,
      115,
      121,
      32,
      76,
      101,
      97,
      114,
      110,
      105,
      110,
      103 
   ]
}

Объединенные буферы

Синтаксис

Ниже приведен синтаксис метода для объединения буферов узла в один буфер узла.

Buffer.concat(list[, totalLength])

параметры

Вот описание используемых параметров —

  • list — Array Список объектов Buffer, которые будут объединены.

  • totalLength — это общая длина буферов при объединении.

list — Array Список объектов Buffer, которые будут объединены.

totalLength — это общая длина буферов при объединении.

Возвращаемое значение

Этот метод возвращает экземпляр Buffer.

пример

Live Demo

var buffer1 = new Buffer('TutorialsPoint ');
var buffer2 = new Buffer('Simply Easy Learning');
var buffer3 = Buffer.concat([buffer1,buffer2]);

console.log("buffer3 content: " + buffer3.toString());

Когда вышеуказанная программа выполняется, она дает следующий результат —

buffer3 content: TutorialsPoint Simply Easy Learning

Сравнить буферы

Синтаксис

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

buf.compare(otherBuffer);

параметры

Вот описание используемых параметров —

  • otherBuffer — это другой буфер, который будет сравниваться с buf

otherBuffer — это другой буфер, который будет сравниваться с buf

Возвращаемое значение

Возвращает число, указывающее, идет ли оно до или после или совпадает с otherBuffer в порядке сортировки.

пример

Live Demo

var buffer1 = new Buffer('ABC');
var buffer2 = new Buffer('ABCD');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 +" comes before " + buffer2);
} else if(result === 0) {
   console.log(buffer1 +" is same as " + buffer2);
} else {
   console.log(buffer1 +" comes after " + buffer2);
}

Когда вышеуказанная программа выполняется, она дает следующий результат —

ABC comes before ABCD

Копировать буфер

Синтаксис

Ниже приведен синтаксис метода для копирования буфера узла:

buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])

параметры

Вот описание используемых параметров —

  • targetBuffer — объект буфера, куда будет скопирован буфер.

  • targetStart — Число, Необязательно, По умолчанию: 0

  • sourceStart — Число, Необязательно, По умолчанию: 0

  • sourceEnd — Номер, Необязательно, По умолчанию: buffer.length

targetBuffer — объект буфера, куда будет скопирован буфер.

targetStart — Число, Необязательно, По умолчанию: 0

sourceStart — Число, Необязательно, По умолчанию: 0

sourceEnd — Номер, Необязательно, По умолчанию: buffer.length

Возвращаемое значение

Нет возвращаемого значения. Копирует данные из области этого буфера в область в целевом буфере, даже если целевая область памяти перекрывается с источником. Если значение не определено, для параметров targetStart и sourceStart по умолчанию задано значение 0, а для sourceEnd по умолчанию установлено значение buffer.length.

пример

Live Demo

var buffer1 = new Buffer('ABC');

//copy a buffer
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());

Когда вышеуказанная программа выполняется, она дает следующий результат —

buffer2 content: ABC

Slice Buffer

Синтаксис

Ниже приведен синтаксис метода для получения суббуфера буфера узла:

buf.slice([start][, end])

параметры

Вот описание используемых параметров —

  • начало — число, опционально, по умолчанию: 0

  • end — Число, Необязательно, По умолчанию: buffer.length

начало — число, опционально, по умолчанию: 0

end — Число, Необязательно, По умолчанию: buffer.length

Возвращаемое значение

Возвращает новый буфер, который ссылается на ту же память, что и старый, но смещен и обрезан по начальному (по умолчанию 0) и конечному (по умолчанию buffer.length) индексам. Отрицательные индексы начинаются с конца буфера.

пример

Live Demo

var buffer1 = new Buffer('TutorialsPoint');

//slicing a buffer
var buffer2 = buffer1.slice(0,9);
console.log("buffer2 content: " + buffer2.toString());

Когда вышеуказанная программа выполняется, она дает следующий результат —

buffer2 content: Tutorials

Длина буфера

Синтаксис

Ниже приведен синтаксис метода для получения размера буфера узла в байтах:

buf.length;

Возвращаемое значение

Возвращает размер буфера в байтах.

пример

Live Demo

var buffer = new Buffer('TutorialsPoint');

//length of the buffer
console.log("buffer length: " + buffer.length);

Когда вышеуказанная программа выполняется, она дает следующий результат —

новый буфер (размер)

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

новый буфер (буфер)

Копирует переданные данные буфера в новый экземпляр Buffer.

новый буфер (str [, кодировка])

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

buf.length

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

buf.write (строка [, смещение] [, длина] [, кодировка])

Записывает строку в буфер со смещением, используя заданную кодировку. смещение по умолчанию равно 0, кодирование по умолчанию — utf8. длина — это количество байтов для записи. Возвращает количество записанных октетов.

buf.writeUIntLE (значение, смещение, byteLength [, noAssert])

Записывает значение в буфер с указанным смещением и byteLength. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. По умолчанию false.

buf.writeUIntBE (значение, смещение, byteLength [, noAssert])

Записывает значение в буфер с указанным смещением и byteLength. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. По умолчанию false.

buf.writeIntLE (значение, смещение, byteLength [, noAssert])

Записывает значение в буфер с указанным смещением и byteLength. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. По умолчанию false.

buf.writeIntBE (значение, смещение, byteLength [, noAssert])

Записывает значение в буфер с указанным смещением и byteLength. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. По умолчанию false.

buf.readUIntLE (offset, byteLength [, noAssert])

Обобщенная версия всех числовых методов чтения. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readUIntBE (offset, byteLength [, noAssert])

Обобщенная версия всех числовых методов чтения. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readIntLE (offset, byteLength [, noAssert])

Обобщенная версия всех числовых методов чтения. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readIntBE (offset, byteLength [, noAssert])

Обобщенная версия всех числовых методов чтения. Поддерживает до 48 бит точности. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.toString ([кодировка] [, начало] [, конец])

Декодирует и возвращает строку из данных буфера, закодированных с использованием заданной кодировки набора символов.

buf.toJSON ()

Возвращает JSON-представление экземпляра Buffer. JSON.stringify неявно вызывает эту функцию при строковом преобразовании экземпляра Buffer.

ЬиЕ [индекс]

Получить и установить октет по индексу. Значения относятся к отдельным байтам, поэтому допустимый диапазон составляет от 0x00 до 0xFF hex или от 0 до 255.

buf.equals (otherBuffer)

Возвращает логическое значение, если этот буфер и otherBuffer имеют одинаковые байты.

buf.compare (otherBuffer)

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

buf.copy (targetBuffer [, targetStart] [, sourceStart] [, sourceEnd])

Копирует данные из области этого буфера в область в целевом буфере, даже если целевая область памяти перекрывается с источником. Если значение не определено, для параметров targetStart и sourceStart по умолчанию задано значение 0, а для sourceEnd по умолчанию установлено значение buffer.length.

buf.slice ([начало] [, конец])

Возвращает новый буфер, который ссылается на ту же память, что и старый, но смещен и обрезан по начальному (по умолчанию 0) и конечному (по умолчанию buffer.length) индексам. Отрицательные индексы начинаются с конца буфера.

buf.readUInt8 (offset [, noAssert])

Читает 8-разрядное целое число без знака из буфера с указанным смещением. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readUInt16LE (offset [, noAssert])

Читает 16-разрядное целое число без знака из буфера с заданным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readUInt16BE (offset [, noAssert])

Читает 16-разрядное целое число без знака из буфера с заданным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readUInt32LE (offset [, noAssert])

Считывает из буфера 32-разрядное целое число без знака с заданным смещением в указанном формате. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readUInt32BE (offset [, noAssert])

Считывает из буфера 32-разрядное целое число без знака с заданным смещением в указанном формате. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readInt8 (offset [, noAssert])

Читает 8-разрядное целое число со знаком из буфера с указанным смещением. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readInt16LE (offset [, noAssert])

Считывает из буфера 16-разрядное целое число со знаком с указанным смещением в указанном формате. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readInt16BE (offset [, noAssert])

Считывает из буфера 16-разрядное целое число со знаком с указанным смещением в указанном формате. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readInt32LE (offset [, noAssert])

Считывает из буфера 32-разрядное целое число со знаком с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readInt32BE (offset [, noAssert])

Считывает из буфера 32-разрядное целое число со знаком с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readFloatLE (offset [, noAssert])

Считывает 32-разрядное значение с плавающей точкой из буфера с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readFloatBE (offset [, noAssert])

Считывает 32-разрядное значение с плавающей точкой из буфера с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readDoubleLE (offset [, noAssert])

Считывает 64-битный дубль из буфера с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.readDoubleBE (offset [, noAssert])

Считывает 64-битный дубль из буфера с указанным смещением в указанном формате с прямым порядком байтов. Установите для noAssert значение true, чтобы пропустить проверку смещения. Это означает, что смещение может быть за пределами буфера. По умолчанию false.

buf.writeUInt8 (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением. Обратите внимание, что значение должно быть действительным 8-разрядным целым числом без знака. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может выходить за пределы буфера, что приводит к тому, что значения отбрасываются без вывода сообщений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeUInt16LE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 16-разрядным целым числом без знака. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Это не должно использоваться, если вы не уверены в правильности. По умолчанию false.

buf.writeUInt16BE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 16-разрядным целым числом без знака. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeUInt32LE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 32-разрядным целым числом без знака. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeUInt32BE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 32-разрядным целым числом без знака. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeInt8 (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 8-разрядным целым числом со знаком. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeInt16LE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным знаковым 16-разрядным целым числом. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeInt16BE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным знаковым 16-разрядным целым числом. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может выходить за пределы буфера, что приводит к тому, что значения отбрасываются без вывода сообщений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeInt32LE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным знаковым 32-разрядным целым числом. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeInt32BE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным знаковым 32-разрядным целым числом. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Это не должно использоваться, если вы не уверены в правильности. По умолчанию false.

buf.writeFloatLE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть допустимым 32-разрядным числом с плавающей запятой. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, и смещение может быть за пределами конца буфера, что приводит к бесшумному отбрасыванию значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeFloatBE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, значение должно быть допустимым 32-разрядным числом с плавающей точкой. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeDoubleLE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 64-битным двойным. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к тому, что значения отбрасываются без вывода сообщений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.writeDoubleBE (значение, смещение [, noAssert])

Записывает значение в буфер с указанным смещением в указанном формате с прямым порядком байтов. Обратите внимание, что значение должно быть действительным 64-битным двойным. Установите для noAssert значение true, чтобы пропустить проверку значения и смещения. Это означает, что значение может быть слишком большим для конкретной функции, а смещение может быть за пределами конца буфера, что приводит к незаметному удалению значений. Он не должен использоваться, если вы не уверены в его правильности. По умолчанию false.

buf.fill (значение [, смещение] [, конец])

Заполняет буфер указанным значением. Если смещение (по умолчанию 0) и конец (по умолчанию buffer.length) не заданы, он заполнит весь буфер.

Buffer.isEncoding (кодирование)

Возвращает true, если кодировка является допустимым аргументом кодировки, в противном случае — false.

Buffer.isBuffer (OBJ)

Проверяет, является ли obj буфером.

Buffer.byteLength (строка [, кодировка])

Дает фактическую длину байта строки. по умолчанию используется кодировка utf8. Это не то же самое, что String.prototype.length, поскольку String.prototype.length возвращает количество символов в строке.

Buffer.concat (list [, totalLength])

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

Buffer.compare (buf1, buf2)

Так же, как buf1.compare (buf2). Полезно для сортировки массива буферов.