Node.js Buffer (búfer)

El lenguaje JavaScript solo tiene tipos de datos de cadena, no tiene tipos de datos binarios.

La clase Buffer en Node.js es una herramienta central para manejar datos binarios y proporciona operaciones eficientes sobre ellos.

La clase Buffer es especialmente útil en escenarios como operaciones con archivos, comunicación de red, procesamiento de imágenes, entre otros.

Características:

  • Datos binarios:BufferUn objeto es una matriz de tamaño fijo que contiene datos binarios sin procesar. Cada elemento ocupa un byte (8 bits), por lo tantoBufferAdecuado para procesar datos binarios, como contenido de archivos, paquetes de red, etc.
  • Inmutabilidad: aunqueBufferEl contenido de un objeto se puede modificar después de su creación, pero su longitud es fija y no se puede cambiar dinámicamente.

Buffer y codificación de caracteres

Las instancias de Buffer generalmente se utilizan para representar secuencias de caracteres codificados, como datos codificados en UTF-8, UCS2, Base64 o hexadecimal. Mediante el uso de una codificación de caracteres explícita, se puede realizar la conversión mutua entre instancias de Buffer y cadenas de JavaScript normales.

Ejemplo

const buf = Buffer.from('ejemplo', 'ascii');

// Salida 72756e6f6f62
console.log(buf.toString('hex'));

// Salida cnVub29i
console.log(buf.toString('base64'));

Las codificaciones de caracteres compatibles actualmente con Node.js incluyen:

  • ascii- Solo admite datos ASCII de 7 bits. Si se elimina el bit alto, esta codificación es muy rápida.

  • utf8- Caracteres Unicode codificados en multibyte. Muchas páginas web y otros formatos de documentos utilizan UTF-8.

  • utf16le- Caracteres Unicode codificados en 2 o 4 bytes, en orden de bytes little-endian. Admite pares sustitutos (U+10000 a U+10FFFF).

  • ucs2 - utf16lealias de.

  • base64- Codificación Base64.

  • latin1- Una forma deBuffercodificar en una cadena codificada en un byte.

  • binary - latin1alias de.

  • hex- Codifica cada byte como dos caracteres hexadecimales.


Crear la clase Buffer

Buffer proporciona la siguiente API para crear la clase Buffer:

  • Buffer.alloc(size[, fill[, encoding]]):Crea un Buffer de longitud size bytes, equivalente a solicitar un espacio de memoria de size bytes, donde cada byte tiene el valor 0.
  • Buffer.allocUnsafe(size):Crea un Buffer de longitud size bytes, pero el Buffer puede contener datos antiguos, lo que puede afectar el resultado de la ejecución, por lo que se llama unsafe.
  • Buffer.allocUnsafeSlow(size):Se utiliza para asignar una nueva instancia de Buffer de tamaño size dado, pero no la inicializa.
  • Buffer.from(array):Devuelve una nueva instancia de Buffer inicializada con los valores de array (los elementos del array pasado solo pueden ser números, de lo contrario se sobrescriben automáticamente con 0).
  • Buffer.from(arrayBuffer[, byteOffset[, length]]):Devuelve un nuevo Buffer que comparte la misma memoria con el ArrayBuffer dado.
  • Buffer.from(buffer):Copia los datos de la instancia de Buffer pasada y devuelve una nueva instancia de Buffer.
  • Buffer.from(string[, encoding]):Crea un Buffer a partir de una cadena; se puede especificar la codificación, cuyo valor predeterminado es UTF-8.

Ejemplo

// Crea un Buffer de longitud 10, relleno con 0.
const buf1 = Buffer.alloc(10);

// Crea un Buffer de longitud 10, relleno con 0x1.
const buf2 = Buffer.alloc(10, 1);

// Crea un Buffer de longitud 10, sin inicializar.
// Este método es más rápido que llamar a Buffer.alloc(),
// pero la instancia de Buffer devuelta puede contener datos antiguos,
// por lo que es necesario sobrescribirla con fill() o write().
const buf3 = Buffer.allocUnsafe(10);

// Crea un Buffer que contiene [0x1, 0x2, 0x3].
const buf4 = Buffer.from([1, 2, 3]);

// Crea un Buffer que contiene los bytes UTF-8 [0x74, 0xc3, 0xa9, 0x73, 0x74].
const buf5 = Buffer.from('tést');

// Crea un Buffer que contiene los bytes Latin-1 [0x74, 0xe9, 0x73, 0x74].
const buf6 = Buffer.from('tést', 'latin1');

Escribir en el búfer

Sintaxis

La sintaxis para escribir en un búfer de Node es la siguiente:

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

Parámetros

Los parámetros se describen a continuación:

  • string- La cadena que se escribe en el búfer.

  • offset- El índice donde el búfer comienza a escribir; por defecto es 0.

  • length- El número de bytes a escribir; por defecto es buffer.length

  • encoding- La codificación utilizada. Por defecto es 'utf8'.

Escribe string en buf en la posición offset según la codificación de caracteres encoding. El parámetro length es el número de bytes a escribir. Si buf no tiene suficiente espacio para almacenar toda la cadena, solo se escribirá una parte de string. Los caracteres solo parcialmente decodificados no se escribirán.

Valor de retorno

Devuelve el tamaño realmente escrito. Si el espacio del búfer es insuficiente, solo se escribirá parte de la cadena.

Ejemplo

buf = Buffer.alloc(256);
len = buf.write("www.example.com");

console.log("写入字节数 : "+  len);

Al ejecutar el código anterior, el resultado es:

$node main.js
写入字节数 : 14

Leer datos del búfer

Sintaxis

La sintaxis para leer datos de un búfer de Node es la siguiente:

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

Parámetros

Los parámetros se describen a continuación:

  • encoding- La codificación utilizada. Por defecto es 'utf8'.

  • start- Especifica la posición de índice donde comienza la lectura; por defecto es 0.

  • end- La posición final; por defecto es el final del búfer.

Valor de retorno

Decodifica los datos del búfer y devuelve una cadena utilizando la codificación especificada.

Ejemplo

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

console.log( buf.toString('ascii'));       // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   //使用 'ascii' 编码, 并输出: abcde
console.log( buf.toString('utf8',0,5));    // 使用 'utf8' 编码, 并输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用默认的 'utf8' 编码, 并输出: abcde

Al ejecutar el código anterior, el resultado es:

$ node main.js
abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

Convertir Buffer a objeto JSON

Sintaxis

El formato de sintaxis de la función para convertir un Buffer de Node a un objeto JSON es el siguiente:

buf.toJSON()

Cuando se convierte en cadena una instancia de Buffer,JSON.stringify()se llama implícitamente a estetoJSON()。

Valor de retorno

Devuelve un objeto JSON.

Ejemplo

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});

// 输出: <Buffer 01 02 03 04 05>
console.log(copy);

Al ejecutar el código anterior, el resultado es:

{"type":"Buffer","data":[1,2,3,4,5]}
<Buffer 01 02 03 04 05>

Combinar búferes

Sintaxis

La sintaxis para combinar búferes de Node es la siguiente:

Buffer.concat(list[, totalLength])

Parámetros

Los parámetros se describen a continuación:

  • list- La lista de matrices de objetos Buffer que se utilizará para la combinación.

  • totalLength- Especifica la longitud total del objeto Buffer después de la combinación.

Valor de retorno

Devuelve un nuevo objeto Buffer resultante de la combinación de varios miembros.

Ejemplo

var buffer1 = Buffer.from(('Ejemplo'));
var buffer2 = Buffer.from(('www.example.com'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

Al ejecutar el código anterior, el resultado es:

buffer3 内容: Ejemplowww.example.com

Comparación de búferes

Sintaxis

La sintaxis de la función de comparación de Buffer en Node es la siguiente. Este método se introdujo en Node.js v0.12.2:

buf.compare(otherBuffer);

Parámetros

Los parámetros se describen a continuación:

  • otherBuffer- Con elbufotro objeto Buffer que se compara con el objeto.

Valor de retorno

Devuelve un número que indica si buf estábufEnotherBufferantes, después o igual.

Ejemplo

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

if(result < 0) {
   console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
   console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");
}

Al ejecutar el código anterior, el resultado es:

ABC在ABCD之前

Copiar búfer

Sintaxis

La sintaxis de copia de buffer de Node es la siguiente:

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

Parámetros

Los parámetros se describen a continuación:

  • targetBuffer- El objeto Buffer que se va a copiar.

  • targetStart- Número, opcional, por defecto: 0

  • sourceStart- Número, opcional, por defecto: 0

  • sourceEnd- Número, opcional, por defecto: buffer.length

Valor de retorno

No tiene valor de retorno.

Ejemplo

var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('EJEMPLO');

//将 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);

console.log(buf1.toString());

Al ejecutar el código anterior, el resultado es:

abEJEMPLOijkl

Recorte del búfer

La sintaxis de recorte de buffer de Node es la siguiente:

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

Parámetros

Los parámetros se describen a continuación:

  • start- Número, opcional, por defecto: 0

  • end- Número, opcional, por defecto: buffer.length

Valor de retorno

Devuelve un nuevo buffer que apunta a la misma memoria que el buffer original, pero cortado desde el índice start hasta end.

Ejemplo

var buffer1 = Buffer.from('ejemplo');
// 剪切缓冲区
var buffer2 = buffer1.slice(0,2);
console.log("buffer2 content: " + buffer2.toString());

Al ejecutar el código anterior, el resultado es:

buffer2 content: ru

Longitud del búfer

Sintaxis

La sintaxis para calcular la longitud de un buffer de Node es la siguiente:

buf.length;

Valor de retorno

Devuelve la longitud de memoria ocupada por el objeto Buffer.

Ejemplo

var buffer = Buffer.from('www.example.com');
//  缓冲区长度
console.log("buffer length: " + buffer.length);

Al ejecutar el código anterior, el resultado es:

buffer length: 14

Manual de referencia de métodos

A continuación se enumeran los métodos comunes del módulo Buffer de Node.js (ten en cuenta que algunos métodos no existen en versiones antiguas):

N.ºMétodo y descripción
1new Buffer(size)
Asigna un nuevo buffer de tamaño size en unidades de 8 bits. Ten en cuenta que size debe ser menor que kMaxLength; de lo contrario, se lanzará una excepción RangeError.Obsoleto: use Buffer.alloc() en su lugar (o Buffer.allocUnsafe()).
2new Buffer(buffer)
Copia los datos del parámetro buffer a la instancia de Buffer.Obsoleto: use Buffer.from(buffer) en su lugar.
3new Buffer(str[, encoding])
Asigna un nuevo buffer que contiene la cadena str proporcionada. La codificación encoding es 'utf8' por defecto.Obsoleto: use Buffer.from(string[, encoding]) en su lugar.
4buf.length
Devuelve el número de bytes de este buffer. Ten en cuenta que no necesariamente es el tamaño del contenido del buffer. length es la cantidad de memoria asignada al objeto buffer y no cambia con el contenido de este objeto buffer.
5buf.write(string[, offset[, length]][, encoding])
Escribe los datos de la cadena string en el buffer según el desplazamiento offset y la codificación encoding especificados. El valor predeterminado de offset es 0 y el de encoding es utf8. length es el tamaño en bytes de la cadena que se va a escribir. Devuelve un valor de tipo number que indica cuántos bytes de 8 bits se escribieron. Si el buffer no tiene suficiente espacio para contener toda la cadena string, solo se escribirá parte de la cadena. El valor predeterminado de length es buffer.length - offset. Este método no escribirá caracteres parciales.
6buf.writeUIntLE(value, offset, byteLength[, noAssert])
Escribe value en el buffer, determinado por offset y byteLength, con soporte de hasta enteros sin signo de 48 bits, en orden little-endian, por ejemplo:
const buf = Buffer.allocUnsafe(6);

buf.writeUIntLE(0x1234567890ab, 0, 6);

// 输出: <Buffer ab 90 78 56 34 12>
console.log(buf);
Cuando noAssert es true, ya no se verifica la validez de value y offset. El valor predeterminado es false.
7buf.writeUIntBE(value, offset, byteLength[, noAssert])
Escribe value en el buffer, determinado por offset y byteLength, con soporte de hasta enteros sin signo de 48 bits, en orden big-endian. Cuando noAssert es true, ya no se verifica la validez de value y offset. El valor predeterminado es false.
const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

// 输出: <Buffer 12 34 56 78 90 ab>
console.log(buf);
8buf.writeIntLE(value, offset, byteLength[, noAssert])
Escribe value en el buffer, determinado por offset y byteLength, con soporte de hasta enteros con signo de 48 bits, en orden little-endian. Cuando noAssert es true, ya no se verifica la validez de value y offset. El valor predeterminado es false.
9buf.writeIntBE(value, offset, byteLength[, noAssert])
Escribe value en el buffer, determinado por offset y byteLength, con soporte de hasta enteros con signo de 48 bits, en orden big-endian. Cuando noAssert es true, ya no se verifica la validez de value y offset. El valor predeterminado es false.
10buf.readUIntLE(offset, byteLength[, noAssert])
Admite la lectura de números sin signo de hasta 48 bits, en orden little-endian. Cuando noAssert es true, offset ya no se valida para comprobar que no exceda la longitud del buffer; el valor predeterminado es false.
11buf.readUIntBE(offset, byteLength[, noAssert])
Admite la lectura de números sin signo de hasta 48 bits, en orden big-endian. Cuando noAssert es true, offset ya no se valida para comprobar que no exceda la longitud del buffer; el valor predeterminado es false.
12buf.readIntLE(offset, byteLength[, noAssert])
Admite la lectura de números con signo de hasta 48 bits, en orden little-endian. Cuando noAssert es true, offset ya no se valida para comprobar que no exceda la longitud del buffer; el valor predeterminado es false.
13buf.readIntBE(offset, byteLength[, noAssert])
Admite la lectura de números con signo de hasta 48 bits, en orden big-endian. Cuando noAssert es true, offset ya no se valida para comprobar que no exceda la longitud del buffer; el valor predeterminado es false.
14buf.toString([encoding[, start[, end]]])
Devuelve un tipo string decodificado según el parámetro encoding (por defecto 'utf8'). También toma como rango de valores los parámetros start (por defecto 0) y end (por defecto buffer.length).
15buf.toJSON()
Convierte la instancia de Buffer en un objeto JSON.
16buf[index]
Obtiene o establece el byte especificado. El valor de retorno representa un byte, por lo que el rango válido del valor de retorno es de 0x00 a 0xFF en hexadecimal o de 0 a 255 en decimal.
17buf.equals(otherBuffer)
Compara si dos buffers son iguales; si lo son, devuelve true; de lo contrario, devuelve false.
18buf.compare(otherBuffer)
Compara dos objetos Buffer y devuelve un número que indica si buf está antes, después o es igual que otherBuffer.
19buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
Copia de buffer; el origen y el destino pueden ser el mismo. targetStart (desplazamiento de inicio del destino) y sourceStart (desplazamiento de inicio del origen) tienen como valor predeterminado 0. sourceEnd (desplazamiento de fin del origen) tiene como valor predeterminado la longitud del origen, buffer.length.
20buf.slice([start[, end]])
Corta el objeto Buffer de acuerdo con los índices de inicio start (por defecto 0) y fin end (por defecto buffer.length). Los índices negativos se calculan desde el final del buffer.
21buf.readUInt8(offset[, noAssert])
Lee un entero sin signo de 8 bits según el desplazamiento especificado. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Si es así, offset podría sobrepasar el final del buffer. El valor predeterminado es false.
22buf.readUInt16LE(offset[, noAssert])
Lee un entero sin signo de 16 bits según el desplazamiento especificado, utilizando un formato especial de orden de bytes endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
23buf.readUInt16BE(offset[, noAssert])
Lee un entero sin signo de 16 bits según el desplazamiento especificado, utilizando un formato especial de orden de bytes endian, en orden big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
24buf.readUInt32LE(offset[, noAssert])
Lee un entero sin signo de 32 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en orden little-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
25buf.readUInt32BE(offset[, noAssert])
Lee un entero sin signo de 32 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en orden big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
26buf.readInt8(offset[, noAssert])
Lee un entero con signo de 8 bits según el desplazamiento especificado. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
27buf.readInt16LE(offset[, noAssert])
Lee un entero con signo de 16 bits según el desplazamiento especificado, utilizando un formato endian especial, en orden little-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
28buf.readInt16BE(offset[, noAssert])
Lee un entero con signo de 16 bits según el desplazamiento especificado, utilizando un formato endian especial, en orden big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset podría sobrepasar el final del buffer. El valor predeterminado es false.
29buf.readInt32LE(offset[, noAssert])
Lee un entero de 32 bits con signo según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en little-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
30buf.readInt32BE(offset[, noAssert])
Lee un entero de 32 bits con signo según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
31buf.readFloatLE(offset[, noAssert])
Lee un número de punto flotante doble de 32 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en little-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
32buf.readFloatBE(offset[, noAssert])
Lee un número de punto flotante doble de 32 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
33buf.readDoubleLE(offset[, noAssert])
Lee un número de doble precisión de 64 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en little-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
34buf.readDoubleBE(offset[, noAssert])
Lee un número de doble precisión de 64 bits según el desplazamiento especificado, utilizando el formato de orden de bytes endian especificado, en big-endian. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que offset puede exceder el final del buffer. El valor predeterminado es false.
35buf.writeUInt8(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado. Nota: value debe ser un entero sin signo válido de 8 bits. Si el parámetro noAssert es true, no se validará el parámetro de desplazamiento offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, no lo uses. El valor predeterminado es false.
36buf.writeUInt16LE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero sin signo válido de 16 bits, en formato little-endian. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
37buf.writeUInt16BE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero sin signo válido de 16 bits, en formato big-endian. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
38buf.writeUInt32LE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado (LITTLE-ENDIAN: orden de bytes little-endian). Nota: value debe ser un entero sin signo válido de 32 bits, en formato little-endian. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
39buf.writeUInt32BE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado (Big-Endian: orden de bytes big-endian). Nota: value debe ser un entero con signo válido de 32 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
40buf.writeInt8(value, offset[, noAssert])
41buf.writeInt16LE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero con signo válido de 16 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
42buf.writeInt16BE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero con signo válido de 16 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
43buf.writeInt32LE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero con signo válido de 32 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
44buf.writeInt32BE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un entero con signo válido de 32 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
45buf.writeFloatLE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: cuando value no es un valor de tipo número de punto flotante de 32 bits, el resultado será indeterminado. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
46buf.writeFloatBE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: cuando value no es un valor de tipo número de punto flotante de 32 bits, el resultado será indeterminado. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
47buf.writeDoubleLE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un valor válido de tipo double de 64 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
48buf.writeDoubleBE(value, offset[, noAssert])
Escribe value en el buffer según el desplazamiento offset proporcionado y el formato endian especificado. Nota: value debe ser un valor válido de tipo double de 64 bits. Si el parámetro noAssert es true, no se validarán los parámetros value y offset. Esto significa que value puede ser demasiado grande, o que offset puede exceder el final del buffer, lo que provocaría que value se descarte. A menos que estés muy seguro de este parámetro, trata de no usarlo. El valor predeterminado es false.
49buf.fill(value[, offset][, end])
Rellena este buffer con el valor value especificado. Si no se especifican offset (el valor predeterminado es 0) y end (el valor predeterminado es buffer.length), se rellenará todo el buffer.
Otras extensiones