How to Create Buffer in Node.js: Syntax and Examples
In Node.js, you create a buffer using
Buffer.alloc(size) to allocate a zero-filled buffer, or Buffer.from(data) to create a buffer from existing data like strings or arrays. Buffers are used to handle raw binary data efficiently.Syntax
Node.js provides several ways to create buffers:
Buffer.alloc(size): Creates a buffer of specifiedsizefilled with zeros.Buffer.from(data): Creates a buffer from existing data like a string, array, or another buffer.Buffer.allocUnsafe(size): Creates a buffer of specifiedsizewithout initializing memory (faster but unsafe).
javascript
const buf1 = Buffer.alloc(10); const buf2 = Buffer.from('hello'); const buf3 = Buffer.allocUnsafe(10);
Example
This example shows how to create buffers using Buffer.alloc and Buffer.from, then prints their contents and lengths.
javascript
const bufAlloc = Buffer.alloc(5); console.log('Buffer.alloc:', bufAlloc); const bufFromString = Buffer.from('Node'); console.log('Buffer.from string:', bufFromString); console.log('String from buffer:', bufFromString.toString());
Output
Buffer.alloc: <Buffer 00 00 00 00 00>
Buffer.from string: <Buffer 4e 6f 64 65>
String from buffer: Node
Common Pitfalls
Common mistakes when creating buffers include:
- Using
Buffer.allocUnsafe()without filling it, which can contain old data and cause security risks. - Assuming buffers are strings; you must convert buffers to strings using
toString(). - Not specifying encoding when creating buffers from strings, which defaults to UTF-8 but can cause issues with other encodings.
javascript
/* Unsafe buffer usage (not recommended) */ const unsafeBuf = Buffer.allocUnsafe(5); console.log('Unsafe buffer:', unsafeBuf); /* Safe buffer usage */ const safeBuf = Buffer.alloc(5); console.log('Safe buffer:', safeBuf);
Output
Unsafe buffer: <Buffer 3a 7f 00 00 00> // actual bytes may vary
Safe buffer: <Buffer 00 00 00 00 00>
Quick Reference
| Method | Description | Use Case |
|---|---|---|
| Buffer.alloc(size) | Creates zero-filled buffer | Safe buffer allocation |
| Buffer.from(data) | Creates buffer from string, array, or buffer | Convert data to buffer |
| Buffer.allocUnsafe(size) | Creates uninitialized buffer | Fast allocation when you will overwrite all data |
Key Takeaways
Use Buffer.alloc(size) to create a safe, zero-filled buffer.
Use Buffer.from(data) to create a buffer from strings or arrays.
Avoid Buffer.allocUnsafe(size) unless you will immediately overwrite the buffer.
Convert buffers to strings with toString() to read their content.
Always specify encoding when creating buffers from strings if not UTF-8.