Digamos que creo un búfer a partir de una cadena:
let buf = Buffer.from('a test');
¿Cuál es una buena manera de rellenar buf (con ceros o nulos) a 32 bytes?
Se me ocurren un par de opciones:
Puede rellenar la cadena antes de usar from :
const buf = Buffer.from(theString.padEnd(32, "\0"));Tenga en cuenta que si la longitud de la cadena es superior a 32, la del búfer también lo será.
Si theString es "example" (por ejemplo), termina con estos bytes en el búfer:
65 78 61 6d 70 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
alloc y copy Alternativamente, alloc y copy :
const buf = Buffer.alloc(32, 0); Buffer.from(theString).copy(buf);Tenga en cuenta que solo se copian tantos bytes como quepan (no arroja si la cadena es más larga, simplemente deja el final).
También puede usar Buffer.concat() para este propósito:
let buf = Buffer.from('a test'); const totalLength = 32; const result = Buffer.concat([buf], totalLength); console.log('Result length:', result.length); console.log('Result:', result);Esto generará algo como:
Longitud del resultado: 32
Resultado: <Búfer 61 20 74 65 73 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>