MEAN Stack to Develop Modern Web Application

Now a days, MEAN stack is a very common buzzword in the software industry. Basically, people with a great passion for new technology use this technology to develop applications. So, if you are among them and want to learn the latest technology to develop software then you are in the right place.

In this article we will introduce MEAN stacks to you. So, let's get to the core discussion. What is a MEAN stack?

A MEAN stack is built with four core technologies, they are:

M - MongoDB
E - ExpressJS
A -AngularJS
N -NodeJS

Now, you are probably more or less familiar with those technologies. Don't worry, we will introduce each one of them. Let's start one by one.

MongoDB

MongoDB

If you update yourself regularly then probably you are aware of the No SQL movement. Yes, the latest database technology uses documents as information rather than records. Not clear?

MongoDB, RedisDB and some other file-based databases store data as a document. So, what is the document? It's nothing but JSON data. Now, we know that JSON stores data in key/value pairs and in those databases the document is probably stored as a key/value pair.

The question may arise, what are the advantages of storing data in JSON format? There are many. First of all those databases are very lightweight and extremely fast in nature and those databases store data in JSON format that is the expected data format in client-side technology (like Angular, Backbone or jQuery). So there is no conversion overhead from a relational data object to JSON data object. It improves performance.

Development of MongoDB began in 2007, when the company (then named 10gen) was building a platform as a service similar to Windows Azure or Google App Engine. In 2009, MongoDB was open sourced as a stand-alone product with an AGPL license.

Look here to learn more about mongoDB.

Node.js
Node.js
Node.JS is another popular buzzword in modern web applications. It allows JavaScript to run beyond it's domain (browser).

So, what is Node.js? Node.js is a software platform to develop scalable server-side network applications. It's programming language is JavaScript and it uses Google's V8 JavaScript engine to run JavaScript out of the browser.

The original beauty of Node.js is its event-driven asynchronous I/O mechanism that can able handle a huge number of simultaneous HTTP requests at a time.

Here is a small history of Node.JS from the Wikipedia.

"Node.js was created by Ryan Dahl starting in 2009. Its development and maintenance is sponsored by Joyent. Dahl was inspired to create Node.js after seeing a file upload progress bar on Flickr. The browser did not know how much of the file had been uploaded and had to query the web server. Dahl wanted an easier way. Ruby's Mongrel web server was another source of inspiration for Dahl.[20]

Originally Dahl had several failed projects in C, Lua, and Haskell, but when Google's V8 engine was released, Dahl began to examine JavaScript."

Visit website of node.js

AngularJS
 
AngularJS
This is another very popular client-side open source JavaScript framework in the modern web scenario. Let's see what AngularJS is. First of all it's a client-side library to bring uniformity in client code. We know that the MVC pattern is the most popular in server-side applications. But, as the modern web application trying to bring the most of the work in the client side, the size of the client layer is increasing.

When it increases, it becomes tough to maintain and extend. To solve this issue Angular.JS is useful.

From my personal experience, we can say it is a complete solution as a client-side framework; it handles the process of DOM manipulation to HTTP request and response.

Angular.JS is released and maintained by Google.

AngularJS' two-way data binding is its most notable feature and reduces the amount of code written by relieving the server backend from tinplating responsibilities.

Have a look here to learn more about angular.JS.

Express.JS

This is the framework of Node.JS. It's something similar to Rails to Ruby. Express 3.X (the latest) is a lightweight web application framework to organize code into a MVC pattern using the JavaScript programming language that is capable of runnning in the Node.JS software platform.

So the question is, why Express.JS? Is Node.JS not sufficient? There is a very conceptual thinking here. Node.JS is a software platform that has a low-level IO mechanism. Now, if we want to work with various components such as storage devices, file processing and many more, we need to have a framework on top of Node.JS that will provide the necessary modules to Node.JS.

Conclusion

I hope you have a very rough idea of modern web technology and the MEAN stack. If you are learning those technologies for the first time then you might not understand fully. Please try to learn them one by one then the entire stack will be transparent to you.