NodeJS Modules Tutorial with Examples

View more Tutorials:

Follow us on our fanpages to receive notifications every time there are new articles. Facebook Twitter

1- What is NodeJS Module?

Speaking simply, NodeJS Module is a Javascript library. It is a set of functions, objects and variables, which you can put into your applications to use. Using Module helps simplify writing code and manage it in your application. Normally, each module will be written in a separate file.
The NodeJS builds in quite many Modules. It has standard libraries for you to develop applications. Below is the list:
Module Description
assert Provides a set of assertion tests
buffer To handle binary data
child_process To run a child process
cluster To split a single Node process into multiple processes
crypto To handle OpenSSL cryptographic functions
dgram Provides implementation of UDP datagram sockets
dns To do DNS lookups and name resolution functions
domain Deprecated. To handle unhandled errors
events To handle events
fs To handle the file system
http To make Node.js act as an HTTP server
https To make Node.js act as an HTTPS server.
net To create servers and clients
os Provides information about the operation system
path To handle file paths
querystring To handle URL query strings
readline To handle readable streams one line at the time
stream To handle streaming data
string_decoder To decode buffer objects into strings
timers To execute a function after a given number of milliseconds
tls To implement TLS and SSL protocols
tty Provides classes used by a text terminal
url To parse URL strings
util To access utility functions
v8 To access information about V8 JavaScript engine
vm To compile JavaScript code in a virtual machine
zlib To compress or decompress files
To use a module, use require(moduleName) function. For example, http is a module that makes the NodeJS work like a HTTP Server.
Make sure that you have created a NodeJS project successfully. If not, please refer to the following lesson:
On your NodeJS project, create a module-examples directory to contain the Javascript files which you practise in this lesson.
Create a file named http-example.js in the module-examples directory.

var http = require("http");

http.createServer(function(req, res)  {

     res.writeHead(200, {"Content-Type": "text/html"});
     res.write("<h1>Hello World</h1>");
     res.write("<h2>Hello Http</h2>");

Open CMD and CD windows to go to your project directory, use the NodeJS to run the http-example.js ​​​​​​​file:

node ./module-examples/http-example.js
Open the browser and visit the path:

2- Create your Module  

In the NodeJS, you can create a customized module. The Module is a Javascript file. please note to the position of this file because it affect the way for you to use it . You have 2 ways of choosing position of this file:
  1. The Module file is put in the directory named node_modules (subdirectory of the project). This is encouraged position.
  2. The Module file is put in one of your directories, not node_modules.  
The NodeJS advises you to place your Module files into the node_modules directory of the project. Wait for a minute, I am going to explain the reason why your module should be put in this directory.
The syntax for exporting something in your Javascript file.

exports = something;

// or:

module.exports = something;
First of all, create a my-first-module.js file in the node_modules directory and the test-my-first-module.js file in another directory.
In this example, the my-first-module.js file has a lot of functions but I only export  "sum" ​​​​​​​function.

subtract = function(a, b)  {
    return a - b;

sum = function (a, b)  {
    return a + b;

module.exports = sum;

var sum = require("my-first-module.js");

console.log("Sum 100 and 150");

var c = sum(100, 150);

console.log("Value = " + c);
Run the above example:

node ./module-examples/test-my-first-module.js
For the module files placed in the node_modules directory, the way of using it is very simple. You don't need to be interest in the relative path or absolute path.

var myVar = require("module-file-name.js");

// or:

var myVar = require("module-file-name");
Next, we create a my-second-module.js file located in a directory, for example, node_modules_2.

var COPY_RIGHT = "o7planning";

module.exports = COPY_RIGHT;
To use the modules located in other directory with  node_modules, you have to use the relative path.

var copyRight
  = require("../node_modules_2/my-second-module.js");

console.log("Copy right: " + copyRight);

node ./module-examples/test-my-second-module.js

3- Export many things

A module file can consist of a lot of functions, variables, and classes. This example shows you how to export many things in this file.

// A variable!!
var COPY_RIGHT = "o7planning";

// A function!!
var multiple = function(a, b)  {

   return a * b;

// A class!!
var Person = class {

   constructor(name, age) {
     this.name = name;
     this.age = age;

   showInfo()  {
     console.log("name="+ this.name+", age="+ this.age);

// Something to Export!!
var somethingToExport = {
  Person: Person,
  multiple : multiple,

// Exprort it!!
module.exports = somethingToExport;

var module3 = require("my-third-module.js");

console.log("Using Person class of module:");

var p = new module3.Person("Smith", 20);


console.log(" -- ");
console.log("Using multiple Function of module:");

var c = module3.multiple(20, 5);

console.log("Value= "+ c);

console.log(" -- ");
console.log("Using Variable of module:");

var copyRight = module3.COPY_RIGHT;

console.log("Copy right: " + copyRight);


node ./module-examples/test-my-third-module.js

View more Tutorials: