Open In App

Global, Process and buffer in Node.js

Last Updated : 05 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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:

  • exports
  • module
  • require
  • __filename
  • __dirname

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.

Javascript




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:

  • The process.exit() method is called explicitly.
  • The Node.js event loop no longer has any additional work to perform.

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.

Javascript




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.

Javascript




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


Output:

GeeksForGeeks


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads