Global, Process and buffer in Node.js

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

Some of the global objects are:

  1. exports
  2. module
  3. require
  4. __filename
  5. __dirname

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

Process: The process object is a global object that gives the information about and control over 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 process:

beforeExit Event: This event is triggered before when Node.js event loop is getting hallow 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

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.');

chevron_right


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 being 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

code excution is goint to end

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

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: