Why We Use the M.E.A.N. Stack at One North

April 15, 2016 David Sharer

The M.E.A.N. acronym stands for MongoDB, Express.JS, Angular.JS and Node.JS. This is an alternative set of technologies one can use to build a robust web application. In this blog post, I will explain some of the benefits this technology stack has to offer, and why we at One North prefer utilizing them.

The JavaScript language is well-known by a large percentage of developers. As far as web applications go, you can accomplish just about anything in JavaScript as you can in any other language. It used to be that JavaScript was a language that would only execute inside of a browser. That has changed with Node.JS, and now we can build our websites on the Node.JS platform to use JavaScript on the server side. The M.E.A.N. stack allows us to use JavaScript at each tier of our technology stack. If you're new to JavaScript development, you will see many frameworks end with a .JS; this denotes that the framework is a JavaScript framework.

MongoDB
MongoDB is a very performant and scalable database. For large data-sets or mostly non-relational data, Mongo is the way to go. Mongo optimizes the read and writes from disk to operate at a very high throughput. Mongo represents each physical document (or a record as we’ve typically referred to it in SQL database) as binary encoded JSON. JSON stands for JavaScript Object Notation.

If your application is very relational in nature, you might choose a traditional SQL DB to store this data. I would still recommend that you look at how you can leverage this excellent technology within your application to where it makes sense. I have found that the concepts are easy to grasp, and if you're coming from a SQL background, the concepts you already know transfer well to this new technology.

Express.JS
Express.JS describes itself as the fast, unopinionated, minimalist web server for Node.JS. Express has a well-defined, well-structured API with great documentation. Because Express is a module for Node, it works nicely with about any other module as well. This provides great functionality out of the box. It is intuitive to get an application up and running very quickly.

At One North, we use an open source CMS solution called Keystone.JS, and that CMS is actually built on top of the Express.JS framework. There is little processing overhead with this framework. As a result of this, request and response times are lightning fast. Also, instead of having to maintain configurations inside of your server daemon, Express relies on configuration settings inside of the application code.

Angular.JS
Angular.JS is a framework created by the folks over at Google. Angular is built on top of jQuery lite, which is essentially a stripped down version of jQuery. Beyond handling a few button clicks in your application, I have personally found that you can add dynamic functionality much more succinctly than you would be able to with jQuery alone. The reason for this is because Angular provides you with attributes that you can include in your HTML markup. These attributes will capture the same type of run-time events that you would otherwise be using jQuery to capture.

Angular also brings a server side coding paradigm to the client side. As web applications become increasingly more sophisticated and complex, it's no wonder the client and server code are starting to closely mirror each other. Take a single page application for example (where content is updated inside of the page without a reload). The powerful binding of the Angular attributes lets us call logic inside of a code block in an associated JavaScript file. We can then update the HTML markup with our logic inside of this code block.

Node.JS
Node.JS is a server side platform that can be installed on any Unix or Windows operating system. This provides a great deal of flexibility, meaning that the application can be written with no concern to what O.S. it's being executed on. I wrote a blog post here outlining the benefits of this powerful platform.

These technologies have plenty to offer. They all have advantages over some of the traditional technologies, and they are all very easy to learn. It's no wonder they have continued to gain in popularity. The adoption by large companies has validated the fact that these technologies can be used to build enterprise applications.

Subscribe

The One North Ideas Update delivers each month’s latest posts on digital for PSOs—including industry trends, news and our latest research—directly to your inbox. Although it’s our goal to always include thought-provoking and compelling content, you can unsubscribe at any time. 

See our Privacy Policy to learn more about how we protect and manage your submitted data.

David Sharer Senior Developer

At the time of publishing, David was a Senior Developer at One North.

One North Interactive 
222 North LaSalle St, #1500
Chicago, IL 60601

+1 312.469.1740