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
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
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
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
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
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
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
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