YouTip LogoYouTip

Nodejs Buffer Module

[![Image 1: Java File](#)Node.js Built-in Modules](#) * * * Buffer is a class in Node.js used to handle binary data streams. In computers, all data is ultimately stored and transmitted in binary form. Buffer provides a way to efficiently handle these raw binary data in Node.js. You can think of Buffer as a fixed-size "container" specifically for storing raw binary data. Unlike regular arrays in JavaScript, Buffer allocates fixed-size memory blocks, making it more efficient when processing large amounts of binary data. * * * ## Why Do We Need Buffer? In web development, we often need to handle various binary data, such as: * File read/write operations * Data transmission in network communication * Image processing * Encryption/decryption operations JavaScript was originally designed primarily for DOM operations in browsers, with limited capability for handling binary data. As a server-side runtime, Node.js needs more powerful binary data processing capabilities, which is why the Buffer module exists. * * * ## Creating Buffer There are several ways to create Buffer in Node.js: ### 1. Using Buffer.alloc() ## Example // Create a Buffer of length 10 bytes, filled with 0 const buf1 = Buffer.alloc(10); console.log(buf1);// ### 2. Using Buffer.allocUnsafe() ## Example // Create a Buffer of length 10 bytes, but don't initialize the content // May contain old data, so it's faster but less secure const buf2 = Buffer.allocUnsafe(10); console.log(buf2);// ### 3. Create from Array ## Example // Create Buffer from array const buf3 = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); console.log(buf3);// ### 4. Create from String ## Example // Create Buffer from string const buf4 = Buffer.from('Hello Node.js'); console.log(buf4);// * * * ## Common Buffer Methods ### Writing Data ## Example const buf = Buffer.alloc(5); // Write string buf.write('Hello'); console.log(buf);// // Write with specified encoding const buf2 = Buffer.alloc(10); buf2.write('Hello','utf8'); console.log(buf2);// ### Reading Data ## Example const buf = Buffer.from('Hello World'); // Read as string console.log(buf.toString());// Hello World // Read partial content console.log(buf.toString('utf8',0,5));// Hello ### Copy Buffer ## Example const buf1 = Buffer.from('Hello'); const buf2 = Buffer.from('World'); const buf3 = Buffer.alloc(10); buf1.copy(buf3,0);// Copy buf1 to the beginning of buf3 buf2.copy(buf3,5);// Copy buf2 to buf3 starting at byte 5 console.log(buf3.toString());// HelloWorld ### Concatenate Buffer ## Example const buf1 = Buffer.from('Hello'); const buf2 = Buffer.from(' '); const buf3 = Buffer.from('World'); const result = Buffer.concat([buf1, buf2, buf3]); console.log(result.toString());// Hello World * * * ## Buffer and Strings Buffer and strings can be converted to each other, but you need to pay attention to encoding issues. Common encodings include: * 'utf8' (default) * 'ascii' * 'base64' * 'hex' ### Example ## Example // String to Buffer const str ='Hello Buffer'; const buf = Buffer.from(str); // Buffer to string console.log(buf.toString());// Hello Buffer // Use different encodings console.log(buf.toString('hex'));// 48656c6c6f20427566666572 console.log(buf.toString('base64'));// SGVsbG8gQnVmZmVy * * * ## Practical Applications of Buffer ### 1. File Operations ## Example const fs = require('fs'); // Read file into Buffer fs.readFile('example.txt',(err, data)=>{ if(err)throw err; console.log(data);// console.log(data.toString());// File content }); // Write Buffer to file const content = Buffer.from('Hello File System'); fs.writeFile('output.txt', content,(err)=>{ if(err)throw err; console.log('File has been saved'); }); ### 2. Network Communication ## Example const http = require('http'); http.createServer((req, res)=>{ const chunks =[]; req.on('data',(chunk)=>{ chunks.push(chunk);// Collect data chunks }); req.on('end',()=>{ const body = Buffer.concat(chunks);// Merge all data chunks console.log(`Received data: ${body.toString()}`); res.end('Data received'); }); }).listen(3000); ### 3. Image Processing ## Example const fs = require('fs'); const sharp = require('sharp'); // Read image into Buffer fs.readFile('input.jpg',(err, data)=>{ if(err)throw err; // Use sharp to process image data in Buffer sharp(data) .resize(200,200) .toBuffer() .then(outputBuffer =>{ // Write processed Buffer to file fs.writeFile('output.jpg', outputBuffer, err =>{ if(err)throw err; console.log('Image processing complete'); }); }); }); * * * ## Notes 1. **Memory Management**: Buffer directly manipulates memory, allocating large Buffers can affect application performance. 2. **Security**: `Buffer.alloc
← Nodejs Timers ModuleNodejs Vm Module β†’