Introduction to Node.Js

ID 659749
Updated 4/20/2016
Version Latest



We have been hearing a lot about node.js. It's popular among web developers and IoT specialists, but what exactly is it, and why is it widely used as a primary language for development? Let's go through this article to understand it.

According to, "node.js is a platform built on Chrome*'s JavaScript* Runtime". In other words, the code you write for the server will execute in a very similar manner in the browser. You can easily bring in the JavaScript* techniques you have learned elsewhere. It is fast, event-driven and lightweight – but the biggest advantage of using  node.js is the asynchronous programming.

Let us understand the difference between asynchronous and synchronous programming in simple terms which will give us an understanding how node.js work behind the scene and one of the reason for its popularity.


You are in a queue to get a movie ticket. You cannot get one until everybody in front of you gets one, and the same applies to the people queued behind you.


You are in a restaurant with many other people. You order your food. Other people can also order their food, they don't have to wait for your food to be cooked and served to you before they can order. In the kitchen restaurant workers are continuously cooking, serving, and taking orders. People will get their food served as soon as it is cooked.

//example 1
var result = database.query("SELECT * FROM sampletable");
//example 2
database.query("SELECT * FROM sampletable", function(result) {


Would be:

  1. finished
  2. start

The difference is that in the first example, the program will block in the first line. The next line (console.log) will have to wait. In the second example, the console.log will be executed while the query is being processed. That is, the query will be processed in the background, while your program is doing other things, and once the query data is ready, you will do whatever you want with it.

So, in a nutshell : The first example will block, while the second wont.


First you need a Window OS that is at least Windows Vista, then download the MSI from Make sure you select the add to path option while installing node.js on your windows machine.

Creating your own node.js server

Start by creating a new file named “server.js”. Insert the following code into the file and save it.

var http = require("http");
var server = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("Hello World");                    
console.log("Server is listening at port 8080");

To start the server, type the command shown below. If everything works properly, you will see a message that the server is listening.

node server.js

The next step is to connect to the server using a web browser. Launch your browser of choice, and direct it to either of the following links. In networking terms, localhost (and it’s IP address of refers to the machine you are currently using. Your browser should be saying “Hello World”.


How the server works

The require(): Node.js provides a simple module system. Node.js programs can load individual modules using the require() method. While many modules must be explicitly downloaded, some modules, such as http called core modules are bundled with node.js.

The HTTP server is created using the http module’s createServer() method. The createServer() takes a callback function as an argument. This callback function is executed each time the server receives a new request.

The callback function takes two arguments, request and response. The request object contains information regarding the client’s request, such as the URL, HTTP headers, and much more. Similarly, the response object is used to return data back to the client.

The call to listen()causes the server to bind to a port and listen for incoming connections. here we have defined port to be 8080.

In the next article we will discuss more on how node.js work with event loop and in details about node modules and how to connect to mongoDB , a NoSQL database.