Skip to content
Related Articles
Open in App
Not now

Related Articles

Global, Process and buffer in Node.js

Improve Article
Save Article
  • Last Updated : 31 Jan, 2022
Improve Article
Save Article

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

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

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 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: 

var buffer = Buffer.alloc(6); 
  • Output:
This will print out 6 bytes of zero
var 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 toString() method to read a buffer.

Javascript




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

Output:

GeeksForGeeks

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!