0% found this document useful (0 votes)
9 views

NODEjs lecture 3

Uploaded by

smeet l
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

NODEjs lecture 3

Uploaded by

smeet l
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

NODE JS

Introduction
Module:5
Contents
• Buffer
• Streams
Buffer
• Node provides Buffer class which provides instances to store raw data similar
to an array of integers but corresponds to a raw memory allocation outside
the V8 heap.
• Buffer class is a global class that can be accessed in an application without
importing the buffer module.
• Creating Buffers
• Node Buffer can be constructed in a variety of ways.

• Method 1: Following is the syntax to create an uninitiated Buffer of 10 octets


var buf = new Buffer(10);

• Method 2: Following is the syntax to create a Buffer from a given array −


var buf = new Buffer([10, 20, 30, 40, 50]);
Buffer
• Writing to Buffers

• Syntax
Following is the syntax of the method to write into a Node Buffer −
buf.write(string[, offset][, length][, encoding])

• Parameters
• Here is the description of the parameters used −
• string − This is the string data to be written to buffer.
• offset − This is the index of the buffer to start writing at. Default value is 0.
• length − This is the number of bytes to write. Defaults to buffer.length.
• encoding − Encoding to use. 'utf8' is the default encoding.
Buffer
• Return Value
• This method returns the number of octets written. If there is not enough
space in the buffer to fit the entire string, it will write a part of the string.
• Example

buf = new Buffer(256); l


en = buf.write("Simply Easy Learning");
console.log("Octets written : "+ len);

• When the above program is executed, it produces the following result −


• Octets written : 20
Buffer
• Reading from Buffers
• Syntax
• Following is the syntax of the method to read data from a Node
Buffer −
buf.toString([encoding][, start][, end])
Parameters
Here is the description of the parameters used −
• encoding − Encoding to use. 'utf8' is the default encoding.
• start − Beginning index to start reading, defaults to 0.
• end − End index to end reading, defaults is complete buffer.

• Return Value
• This method decodes and returns a string from buffer data encoded
using the specified character set encoding.
Buffer
• Example
buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++)
{ buf[i] = i + 97; }
console.log( buf.toString('ascii'));
console.log( buf.toString('ascii',0,5));
console.log( buf.toString('utf8',0,5));
console.log( buf.toString(undefined,0,5));

• When the above program is executed, it produces the following result



• abcdefghijklmnopqrstuvwxyz
• abcde
• abcde
• abcde
Buffer
• Concatenate Buffers
• Syntax
• Following is the syntax of the method to concatenate Node buffers to a single Node
Buffer −
Buffer.concat(list[, totalLength])

• Parameters -Here is the description of the parameters used −


• list − Array List of Buffer objects to be concatenated.
• totalLength − This is the total length of the buffers when concatenated.

• Return Value
• This method returns a Buffer instance.
Buffer
• Example

var buffer1 = new Buffer(‘Node.js ');


var buffer2 = new Buffer('Simply Easy Learning');
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 content: " + buffer3.toString());

• When the above program is executed, it produces the following


result −
• buffer3 content: Node.js Simply Easy Learning
Buffer
Compare Buffers
• Syntax
• Following is the syntax of the method to compare two Node buffers −
buf.compare(otherBuffer);

• Parameters
• Here is the description of the parameters used −
• otherBuffer − This is the other buffer which will be compared with buf

• Return Value
• Returns a number indicating whether it comes before or after or is the same
as the otherBuffer in sort order.
Buffer
• Example

var buffer1 = new Buffer('ABC');


var buffer2 = new Buffer('ABCD');
var result = buffer1.compare(buffer2);
if(result < 0)
{ console.log(buffer1 +" comes before " + buffer2); }
else if(result === 0)
{ console.log(buffer1 +" is same as " + buffer2); }

else { console.log(buffer1 +" comes after " + buffer2); }

• When the above program is executed, it produces the following result



• ABC comes before ABCD
Buffer
• Copy Buffer
• Syntax
• Following is the syntax of the method to copy a node buffer −
• buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])

• Parameters
• Here is the description of the parameters used −
• targetBuffer − Buffer object where buffer will be copied.
• targetStart − Number, Optional, Default: 0
• sourceStart − Number, Optional, Default: 0
• sourceEnd − Number, Optional, Default: buffer.length

• Return Value
• No return value. Copies data from a region of this buffer to a region in
the target buffer even if the target memory region overlaps with the
source. If undefined, the targetStart and sourceStart parameters
default to 0, while sourceEnd defaults to buffer.length.
Buffer
• Example
var buffer1 = new Buffer('ABC');
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());

• When the above program is executed, it produces the following


result −
• buffer2 content: ABC
Buffer
• Slice Buffer
• Syntax
• Following is the syntax of the method to get a sub-buffer of a node buffer −
• buf.slice([start][, end])

• Parameters
• Here is the description of the parameters used −
• start − Number, Optional, Default: 0
• end − Number, Optional, Default: buffer.length

• Return Value
• Returns a new buffer which references the same memory as the old one, but
offset and cropped by the start (defaults to 0) and end (defaults to
buffer.length) indexes. Negative indexes start from the end of the buffer.
Buffer
• Example
var buffer1 = new Buffer('TutorialsPoint');
var buffer2 = buffer1.slice(0,9);
console.log("buffer2 content: " + buffer2.toString());

• When the above program is executed, it produces the following


result −
• buffer2 content: Tutorials
Buffer
• Buffer Length
• Syntax
• Following is the syntax of the method to get a size of a node
buffer in bytes −
• buf.length;

• Return Value
• Returns the size of a buffer in bytes.
streams
• What are Streams?
• Streams are objects that let you read data from a source or write
data to a destination in continuous fashion. In Node.js, there are
four types of streams −
• Readable − Stream which is used for read operation.
• Writable − Stream which is used for write operation.
• Duplex − Stream which can be used for both read and write
operation.
• Transform − A type of duplex stream where the output is computed
based on input.
streams
• Each type of Stream is an EventEmitter instance and throws several
events at different instance of times. For example, some of the
commonly used events are −
• data − This event is fired when there is data is available to read.
• end − This event is fired when there is no more data to read.
• error − This event is fired when there is any error receiving or writing
data.
• finish − This event is fired when all the data has been flushed to
underlying system.
streams
• Reading from a Stream : demo readstream.js
• Writing to a Stream : demo writestream.js
• Piping the Streams : demo pipe.js

You might also like