Why MEAN Stack for your next WebApp

By Ajay Shankar Maurya March 19, 2018

MEAN Stack is the next level in the growth of Web Development. In today’s dynamic world a single person is now able to do Front-End & Back-End Development both using the single Scripting language. If we talk about traditionally, the developers had to learn different programming languages for different layers.

For example, to develop a java based application then a person has to be good Knowledge about JavaScript for Frontend Validation as well as for backend has good Knowledge of XML & SQL.

But the MEAN Stack is liked an isomorphic programming style, that provides great flexibility, locally owned schema, in-built support for the end to end testability and also it easily integrates with Third-party tools that helps in enhancing the feature of Application from development to deployment at the server.

The conclusion is that, all you need to know a single language i.e JavaScript (ECMAScript) that handles all layers of web development from frontend to backend.

MEAN Consists of 4 Components

M (MongoDB) -> MongodDB is an open-source cross-platform document-oriented database program,which is based on NoSQL database that uses JSON-like documents with Schemas.

E (ExpressJS) -> Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

A (AngularJS) -> AngularJS is a JavaScript-based open-source front-end web application framework mainly maintained by Google.It provides MVW based Architecture for UI.

N (NodeJS) -> Nodejs is a JavaScript runtime built on Chrome V8 JavaScript engine. Nodejs uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

Advantages of using Mean Stack

1) MEAN Stack is an isomorphic programming that’s why it provides easy to developer to stack trace the data travels between the layers and also it greatly reduces the programmer overhead to writing a separate parsing Script for parse the XML code in java ,but now the data transfer is taking place in the form of JSON(JavaScript Object Notation ) Format between the layers that reduce the complexity and easy for debug & Test.

2) AngularJS enhancing the HTML features and capability by defining it’s pre-define Directives, Modules, Validations, and Filters, also it replace MPA (Multiple Page Application) to SPA(Single Page Application ) with the Router facility of Angular, which is one of the best features of Angular JS because it saves a lot of requests to server for fetching pages .

Traditionally Websites are Multi Page based Applications and that’s why when you click on any link to view another section of a page of a particular website then a request is going to server and a new page is load, instead of loading particular that view section and this increase the size of packets travels on the network and again whole headers, footers and view sections of page are loaded.So to overcome this problem Angular provide Routing facility at Frontend by which only first-time whole page is load after that at runtime only view section is changed, not a whole page.

Also, Angular JS provides MVW(Model View Whatever) Architecture by which we can make a loosely coupled Applications, Where in Model we can write pure Logics and make Server Calls, in View we can write whole HTML page & Whatever consists of ( Controllers or View-Model).Controllers are work as a glue between view & Model that get data from view and send it to model & vice-versa that makes the Application loosely coupled. View-Model or (MVVM) is also known as 2-way data binding that is the replacement of DOM (Document Object Model) of JavaScript that makes fast to get & update data on view.

3) Angular JS supports many 3rd Party Libraries and Application Development tools like localStorage ( 3 way Data binding ) , i18n ( internationalization ) ,Jasmine (Unit Testing) , Karma (Cross Browser Testing & AutoRun ) , Bower ( Dependency Management Tools ) , GruntJS ( For compression ,concatenation of files and minification) , YeoMan Generator ( Project Structuring) & many more.

4) NodeJs is working on Asynch I/O & Event Driven that makes it non-blocking Model. NodeJs works on single core & not supports Multi-Threading that’s why it is worst in that case when we have to make applications which have High CPU usages like Heavy Games because it requires more than one core CPU. But Nodejs behave as a multithreading because of Async working style with Callback & Promise supports that makes it rich to do more than one task simultaneously that’s why it is called as a Non-Blocking model.

Nodejs is also best in the case when we have to make a Streaming based Application. Traditionally the data was Streaming in the form of Buffering but Now in Nodejs the data will Streaming in the form of Chunks.

In Nodejs One JavaScript file can talk with another JavaScript File by using ‘require’ function of Nodejs which is one of the best features of Nodejs.

Nodejs package eco-system NPM is the largest ecosystem of open source libraries in the world that make Nodejs rich of modules. For example some famous modules used in node like nodemailer (send mails) , multer (for uploading) , log4js (maintains logs) ,bcrypt (encryptions) ,chalk (terminal string styling) , chai (Unit testing of REST API’s ) ,mocha (Test Runner ) & many more.

5) ExpressJs is a fast, minimal and flexible Framework for NodeJS that can help you in creating Server Side web applications in faster and smarter way.Express provides simplicity and Scalability to your web application.

6) MongoDB is a NoSQL based Database that provides many benefits, the first one is that mongo is schemaless, it means that you do not have to provide schema first to store documents in the database, you can store documents in any structure in the form of JSON (JavaScript Object Notation ) format.And the Second one is that MongoDB is easy to scale.

In MongoDB there is no concept of RDBMS i.e there is no Relationship between tables but here the tables name is called as a Collection name and rows is called as a document & also there is no complex joins in MongoDB.

There are many features of MongoDB like we can perform indexing on any attribute, Replication & high availability (Replication provides redundancy and increases data availability.With multiple copies of data on different database servers, replication provides a level of fault tolerance against the loss of a single database server) ,Auto-Sharding (the process of storing data records across multiple machines) , Rich Queries & Fast in-place updates (the database does not have to allocate and write a full new copy of the object).