Mean Stack


The MEAN stack is a methodology that employs MongoDB, Express, AngularJS and Node.JS to provide a complete end-to-end system. One of the primary motivations of such a stack is that it is pure JavaScript at all ends.

Three different ready-to-go implementations are available:

MEAN is a free and open-source JavaScript software stack for building dynamic web sites and web applications.
The MEAN stack is MongoDB, Express.js, Angular, and Node.js. Because all components of the MEAN stack support programs are written in JavaScript, MEAN applications can be written in one language for both server-side and client-side execution environments.

Components Of MEAN :

M - MongoDB - a NoSQL database

E - Express - a web application framework that runs on Node.js

A - AngularJS

N - Node.js - an execution environment for event-driven server-side and networking applications

MongoDB :

MongoDB is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas. MongoDB is free and open-source.

Express (Express.js) :

Express.js, is a web application framework for Node.js, free and open-source software. It is designed for building web applications and APIs.It is the de facto standard server framework for Node.js. It is relatively minimal with many features available as plugins. Express is the backend part of the MEAN stack, together with MongoDB database and AngularJS frontend framework. It provides the MEAN app boilerplate to start on with.

AngularJS (Angular.js) :

AngularJS is the frontend part of the MEAN stack. It is a complete JavaScript-based open-source front-end web application framework. It aims to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model–view–viewmodel (MVVM) architectures, along with components commonly used in rich Internet applications. The AngularJS framework works by first reading the HTML page, which has embedded into it additional custom tag attributes. Angular interprets those attributes as directives to bind input or output parts of the page to a model that is represented by standard JavaScript variables. The values of those JavaScript variables can be manually set within the code, or retrieved from static or dynamic JSON resources.

Node.js :

Node.js is an open-source, cross-platform JavaScript runtime environment for developing a diverse variety of tools and applications. Although Node.js is not a JavaScript framework,many of its basic modules are written in JavaScript, and developers can write new modules in JavaScript. The runtime environment interprets JavaScript using Google's V8 JavaScript engine.
Node.js has an event-driven architecture capable of asynchronous I/O. These design choices aim to optimize throughput and scalability in Web applications with many input/output operations, as well as for real-time Web applications (e.g., real-time communication programs and browser games).