Buenas Prácticas para Buffers
Los Buffers son la herramienta adecuada para trabajos binarios pequeños y de tamaño conocido; para todo lo demás, limita los tamaños, prefiere los streams y trata la codificación y los secretos de forma explícita.
Busca en todas las páginas de la documentación
Los Buffers son la herramienta adecuada para trabajos binarios pequeños y de tamaño conocido; para todo lo demás, limita los tamaños, prefiere los streams y trata la codificación y los secretos de forma explícita.
readFile en un solo Buffer. Memoria constante bajo carga.MAX_FRAME o tamaño de cuerpo en parsers binarios. Rechaza prefijos de longitud de tamaño excesivo antes de la asignación.Buffer.concat cuando se conoce la longitud total. Evita la reasignación O(n²) en muchos fragmentos.Buffer.alloc para secretos y material criptográfico. No allocUnsafe a menos que se sobrescriba completamente de inmediato.utf8 explícitamente en toString/from para texto. Documenta las codificaciones heredadas en ADR si es inevitable.TextDecoder con fatal: true para protocolos de texto entrantes. Rechaza secuencias mal formadas en el límite.Buffer.byteLength para límites de tamaño UTF-8. No .length de cadena.crypto.timingSafeEqual en resúmenes de igual longitud. No === directo en claves API.finally cuando sea factible. buffer.fill(0) higiene de mejor esfuerzo.data equivale a un mensaje.subarray sobre slice para vistas de copia cero. Copia cuando se retiene más allá de la siguiente lectura.TextEncoder/Uint8Array estándar web en los límites de fetch. Interoperabilidad con clientes de navegador.latin1 para "preservación". Hex/base64 explícito con límites de tamaño en su lugar.Depende de la API: REST típico de 1-10 MB en el proxy inverso y la aplicación. Más estricto para los endpoints de autenticación.
Agrupación interna de fragmentos no sensibles que escribes completamente antes de cualquier lectura; nunca secretos orientados al usuario.
Buffer extiende Uint8Array; usa cualquiera; prefiere las APIs web en los límites isomórficos.
Transfiere ArrayBuffers para evitar copias; documenta la semántica de transferencia de propiedad.
Primero decodifica UTF-8 a cadena con un decodificador fatal, luego parsea, o limita el tamaño antes de decodificar.
Transmite a disco o S3; no almacenes todo el archivo en RAM.
No, ${buf} se convierte a cadena y puede filtrar contenido en los registros.
Divide un frame conocido en múltiples llamadas a feed() en node:test.
Solo donde la estabilidad del esquema y el rendimiento justifican la complejidad; no para scripts únicos.
Buenas Prácticas para Streams para reglas de pipeline y contrapresión.
Establece bodyLimit y usa streams para descargas grandes; los valores predeterminados de Fastify no son seguridad ilimitada.
No en reposo; usa KMS/Vault. El transporte Base64 está bien con TLS y corta vida útil.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS Activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026