Node.js6 min read

Working with Buffers

Handle binary data with Buffers. Essential for files, images, and network protocols.

Sarah Chen
December 19, 2025
0.0k0

Buffers in Node.js

Buffers handle raw binary data. Think of them as arrays of bytes.

Creating Buffers

```javascript const buf1 = Buffer.from('Hello World'); console.log(buf1);

const buf2 = Buffer.alloc(10);

const buf3 = Buffer.from([72, 101, 108, 108, 111]); console.log(buf3.toString()); ```

**Output:** ``` <Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64> Hello ```

Encoding Conversions

```javascript const text = 'Hello World'; const buf = Buffer.from(text, 'utf8');

const base64 = buf.toString('base64'); console.log(base64);

const decoded = Buffer.from(base64, 'base64').toString('utf8'); console.log(decoded); ```

**Output:** ``` SGVsbG8gV29ybGQ= Hello World ```

Real Example: Image to Base64

```javascript const fs = require('fs');

const imageBuffer = fs.readFileSync('photo.jpg');

const base64Image = imageBuffer.toString('base64');

const dataURI = `data:image/jpeg;base64,${base64Image}`;

console.log(dataURI); ```

Use this to embed images in HTML or send via API.

Real Example: Check File Type

```javascript const fs = require('fs');

const buffer = fs.readFileSync('unknown-file');

if (buffer[0] === 0xFF && buffer[1] === 0xD8) { console.log('This is a JPEG file'); } else if (buffer[0] === 0x89 && buffer[1] === 0x50) { console.log('This is a PNG file'); } else if (buffer[0] === 0x47 && buffer[1] === 0x49) { console.log('This is a GIF file'); } ```

Every file type has a unique signature (magic bytes).

Buffer Operations

```javascript const buf = Buffer.from('Hello');

console.log(buf.length);

console.log(buf[0]);

buf[0] = 74; console.log(buf.toString());

const slice = buf.slice(0, 2); console.log(slice.toString()); ```

**Output:** ``` 5 72 Jello Je ```

Concatenate Buffers

```javascript const buf1 = Buffer.from('Hello '); const buf2 = Buffer.from('World');

const combined = Buffer.concat([buf1, buf2]); console.log(combined.toString()); ```

**Output:** `Hello World`

Real Example: File Upload

```javascript const express = require('express'); const multer = require('multer'); const app = express();

const upload = multer({ storage: multer.memoryStorage() });

app.post('/upload', upload.single('file'), (req, res) => { const buffer = req.file.buffer; const base64 = buffer.toString('base64'); res.json({ filename: req.file.originalname, size: buffer.length, base64: base64.substring(0, 100) + '...' }); });

app.listen(3000); ```

Key Takeaway

Buffers handle binary data like images, files, and network packets. Use `Buffer.from()` to create, `toString()` to convert. Essential for file operations and working with binary protocols.

#Node.js#Buffer#Binary#Data