Introducing The MEAN stack

Diagram of the MEAN stack

Diagram of the MEAN stack

Like every web developer I had done a fair amount of client side Javascript development, but having to service server-sides of websites with other languages too, I didn’t jump into Node.js until recently when it started showing unmistakable signs of maturity and big potential. Even though it is very much still a work in motion, I was quickly amazed and enchanted with how advanced and versatile it is and I started learning hectically.  I looked around at all kinds of tools and solutions, but so far the best starting point that I have found is the MEAN stack at http://www.mean.io.

Thea MEAN stack is a fairly large boilerplate and stands for MongoDB / Express / Angular / Node. So why did I choose this technology stack?

MongoDB is a NoSQL database technology which has become increasingly popular lately. Two main things attracted me to it – 1) it uses Javascript as a language to modify and query the database and JSON format to store the data and 2) It is much more flexible than the traditional SQL solutions. It does not enforce a schema and accepts any kind of unique JSON object in the database, no matter how different or sophisticated it is. Mongo is written in C, but you use it with Javascript which is why I consider it a fitting part for my 100% Javascript stack.

Express.js has become the dominant server-side MVC framework for Node.js. What I like very much about this technology is how well it fits with my thinking as a client-side Javascript developer. It is minimalistic, yet very powerful and extendable. Express defines the responses to each type of HTTP request at each defined route and treats the request and responses as objects you can manipulate in any way you see fitting.

Angular.js  is a client-side MVC framework by Google which is fighting for the crown in this realm with the other main contender Backbone.js, of which I’m also a fan. Angular differs in the way that it aims to be a complete solution for large-scale applications and has very many powerful out of the box features. It has been gaining a lot of popularity lately. One of its main goals is to increase developer productivity and creativity.

Node.js is the biggest game-changer in the Javascript world since jQuery. It allows Javascript to transcend its traditional role as a browser scripting language and become a fully-fledged programming language which can be used for almost any purpose. Many tools which have until now been only available to Java, Ruby, Php, .NET or Python developers now have their analogs in the Node.js. It is used from writing servers and making web applications to programming drones and robots like the Parrot AR and Arduino. NPM is a brilliant feature, it is the registry for tools, plugins, frameworks, libraries and anything Javascript you need which can be added to your application with a simple terminal command.

All these great tools come together beautifully as they all use the same language – Javascript. For the first time ever you can create web software applications entirely using one language and this gives you tremendous power.

In the next post I will get into the details of how the MEAN stack works.

 

4 thoughts on “Introducing The MEAN stack

  1. Stephen Chumley

    October 20, 2013 at 6:21am

    “It is very important to note that unless set otherwise in the schema, mongoose will use the name of the model as name of the collection in your MongoDB server. So Article models will be stored in the articles collection.”

    – that’s just one of the little tidbits that helped me get over the hump. great write up bro. props for spending your time helping others out there. it’s much appreciated. cheers!

  2. Courtney

    August 26, 2014 at 4:44am

    Is there a follow up article to this one? I LOVE the diagram, extremely helpful breakdown of the massive MEAN.IO framework. Please keep up the great work!

  3. Amrudesh Santhanam

    December 29, 2014 at 7:55am

    Nice initial post. Agree with you.. I seem to like MEAN too.. Would be great if you can expand a bit.. The angular part of the mean code seems a little hard to digest at first….

Comments are closed.