Skip to main content

Understanding Nodejs Modules

Introduction

Nodejs is a powerful JavaScript runtime built on Chrome's V8 JavaScript engine. It is designed to build scalable network applications and is a favourite among developers for its flexibility and high performance. One of the most powerful features of Nodejs is its module system. In this article, we will dive into understanding Nodejs modules.

What Are Node.js Modules?

A module in Nodejs is a simple or complex functionality organized in single or multiple JavaScript files which can be reused throughout the Node.js application. Each module in Node.js has its own context, so it cannot interfere with other modules or pollute the global scope. Also, each module can be placed in a separate .js file under a separate folder.

Node.js follows the CommonJS module system, and the built-in require function is the easiest way to include modules that exist in separate files. The basic functionality of the require function is that it reads a JavaScript file, executes the file, and then proceeds to return the exports object.

Creating and Exporting Modules

Creating a Node.js module is simple. Let's create a simple module to understand how it works. Create a new file named greet.js and add the following code:

const greet = function() {
console.log('Hello, World!');
}

module.exports = greet;

In the above code, we have a greet function that logs 'Hello, World!' to the console. We then attach this function to the module.exports object. The module.exports object is what the require function returns when our module is imported into another file.

Importing and Using Modules

Now, let's see how to import and use the module we just created. Create a new file named app.js and add the following code:

const greet = require('./greet');

greet(); // Outputs: Hello, World!

In the above code, we use the require function to import our greet module, which is in the greet.js file. We then call the greet function, and it outputs 'Hello, World!' to the console.

Core Modules

Node.js comes with several modules compiled into the binary, such as http, url, querystring, path, fs, etc. These are called core modules. Core modules are always preferentially loaded if their identifier is passed to require(). For example, if there is a file /home/user/proj/querystring.js, calling require('querystring') will still load the core module and not the local file.

Here is an example of using the http core module to create a simple server:

const http = require('http');

const server = http.createServer((req, res) => {
res.end('Hello, World!');
});

server.listen(3000, () => {
console.log('Server is listening on port 3000');
});

In the above code, we use the http core module to create a server that listens on port 3000 and responds with 'Hello, World!' to any request.

Conclusion

Node.js modules are the fundamental way to structure your code in a Node.js application. They allow you to create complex applications by splitting your code into multiple files and directories, each with a specific purpose. By understanding how to create, export, import, and use modules, you've taken a significant step in your Node.js journey. Happy coding!