Explain
How can I do Base64 encoding in Node.js?
In Node.js, you can easily perform Base64 encoding using the built-in Buffer class. Below are the most common methods:
1. Encoding a String to Base64
// Sample text
const text = 'Hello, Node.js!';
// Create a buffer from the string
const buffer = Buffer.from(text, 'utf-8');
// Convert buffer to Base64 string
const base64String = buffer.toString('base64');
console.log('Base64 Encoded:', base64String);
// e.g., SGVsbG8sIE5vZGUuanMh
Key Points:
Buffer.from(string, 'utf-8'): Creates a buffer from a UTF-8 string..toString('base64'): Outputs the Base64-encoded representation of the buffer.
2. Decoding Base64 Back to a String
To reverse the operation (Base64 -> original string), do the following:
// Assuming you have a base64-encoded string
const base64String = 'SGVsbG8sIE5vZGUuanMh';
// Convert from Base64 to Buffer
const decodedBuffer = Buffer.from(base64String, 'base64');
// Convert buffer to original string
const originalString = decodedBuffer.toString('utf-8');
console.log('Decoded String:', originalString);
// e.g., Hello, Node.js!
3. Encoding/Decoding Binary Data
If you’re dealing with binary files (images, PDFs, etc.), you can read the file into a buffer, then call .toString('base64'). For example:
const fs = require('fs');
// Read a binary file into a buffer
const fileBuffer = fs.readFileSync('./image.png');
// Encode buffer to Base64
const base64Image = fileBuffer.toString('base64');
// You can also decode back to binary if needed:
const decodedBuffer = Buffer.from(base64Image, 'base64');
// Then save it as a file
fs.writeFileSync('./decoded_image.png', decodedBuffer);
4. Common Use Cases
- Embedding Assets in HTML or CSS (inline images, fonts).
- Sending Binary Data over text-based protocols (e.g., JSON, XML).
- Storing Small Binaries in databases where a text field is required.
5. Summary
- To Encode:
Buffer.from(stringOrBuffer).toString('base64') - To Decode:
Buffer.from(base64String, 'base64').toString('utf-8') - Works similarly for both text and binary data, though you’ll need to handle buffers directly when dealing with files.
This built-in Buffer API provides a straightforward way to convert data to and from Base64 in Node.js without external libraries.
Recommended Resource
Recommended Courses