Open In App

Global, Process and buffer in Node.js

Global: Global objects in node.js is available in all the modules and are scoped locally to their respective modules.

Some of the global objects are:



The above objects and require functions can be accessed everywhere without importing.

Process: A process object is a global object that gives information about and controls the node.js process. As it is global, it can be used in the project without importing it from any module. 



It is an instance of EventEmitter class and has many useful methods that help us in knowing more about the processes that happened and also about currently undergoing the process.

Important events of the process:

beforeExit Event: This event is triggered when the Node.js event loop is getting hollow and has no additional work scheduled. In general cases, the Node.js process will exit when there is no process left, but a listener registered on the ‘beforeExit’ can make asynchronous calls.




const process = require('process');
 
process.on('beforeExit', (data) => {
console.log('Process beforeExit event with code.');
});
 
process.on('exit', (data) => {
console.log('Process exit event with code');
});
 
console.log('This code is rendered first.');

Output: 

This code is rendered first.
Process beforeExit event with code.
Process exit event with code.

Exit Event: The ‘exit’ event is emitted when the Node.js process is about to exit as a result of either:

There is no way to prevent the exiting of the event loop at this point, and once all ‘exit’ listeners have finished running the Node.js process will terminate.




process.on('exit', (data) => {
    console.log(`code execution is going to end `);
});

Output: 

code execution is going to end

Apart from the above two main events, there are also many more events that come with process objects. 

Buffer: The Buffer class in Node.js is made to handle raw binary data. Each buffer corresponds to some raw memory allocated outside V8. Buffers act somewhat like arrays of integers, but aren’t resizable and have a whole bunch of methods specifically for binary data.

Creating a buffer: 

let buffer = Buffer.alloc(6); 

Output:

This will print out 6 bytes of zero
let buffer = Buffer.from("Welcome to GeeksforGeeks!", "utf-8");

Output:

This will print out a chain of values in utf-8

Writing to a buffer: If it contains two arguments, the first argument is the data and the second argument is the type of encoding.

buffer.write("GeeksForGeeks", "utf-8")

Output:

This will print out 13 as size of buffer

Reading a buffer: We can use the toString() method to read a buffer.




let buf = Buffer.from('GeeksForGeeks');
console.log(buf.toString());

Output:

GeeksForGeeks

Article Tags :