JavaScript has come a long way since being released back in 1995. We’ve seen several major versions of the ECMAScript specification and the rise of single-page web applications, all powered by client side JavaScript frameworks. Initially, all JavaScript development and innovation was done in the browser because that was the only context that supported the language. As time passed, web developers started to realize that many of JavaScript’s most useful features (that it’s non-blocking, it’s event-driven, that it’s a familiar language for many) could be leveraged in environments other than the browser. This kick-started a second round of innovation in the JavaScript community that resulted in JavaScript running on servers and on databases.
Suddenly, knowing JavaScript didn’t automatically pigeonhole you as a “front end web developer.” If you know the language well, you can build servers and databases, in addition to front end user experiences. Now, for the first time, developers can build an entire web application using only JavaScript. This trend is often called things like “full stack JavaScript” or “pure JavaScript solutions.” Combining four popular JavaScript technologies; MongoDB, Express, AngularJS, and Node.js to build web applications has become so popular, that it has become known as the “MEAN Stack.”
- MongoDB – MongoDB is what’s known as a NoSQL database. It can be thought of as a database of documents, rather than consisting of rows, columns, and tables. The primary use case is storing JSON data; a perfect fit when writing applications with JavaScript. What it may lack in relations and a draconian adherence to schema, it makes up for in speed, scalability, and ease-of-use.
- Express – Express is a thin web server framework designed to make building web servers with Node easier and more maintainable. It is an unopinionated framework which provides developers a high level of customizability but is “low-level” enough to still have access to the underlying Node framework it’s built on. Express provides an easy to use request router, cookie management, a static file server, and many other HTTP building blocks needed to create enterprise-grade web servers.
- AngularJS – Angular is a feature-rich client side MVC JavaScript framework. It can be used to make robust and complex single-page web applications. It has built in two-way data binding and its own HTML-based templating language. It also has a feature called “directives” that allow you to extend HTML with new attributes, and even new elements. Angular is also highly testable, which may not be the most interesting facet of development, but it is often the most important and is frequently overlooked with client side code. Finally, it provides conventions and best practices to help developers structure client side solutions.
- Node – Node is a JavaScript runtime used to build server and networking applications. It provides all the JavaScript features found in the browser with additions for file and network I/O. It uses Google’s V8 engine (the same one used in Google Chrome) to execute JavaScript. It also boasts a very active community of developers and ecosystem of Node modules (Express is one such module). While there have been other server side implementations of JavaScript, Node is, by far, the most successful in terms of development and adoption by both enthusiasts and large corporations as well.
If you are a fan of JavaScript, like I am, you should be excited by the prospect of building an entire web application using only JavaScript. The MEAN Stack is an extremely popular topic, and there is tons of information on the web out there for how to get started working with it. In fact, there is so much information, the thought of “getting started” might seem a little daunting.
That’s why myself and Colin Ihrig wrote a book about it. In it, we discuss each of the four technologies that comprise the MEAN stack. We cover the most important features of each technology that will help you get up to speed and become productive very quickly. Explanations only go so far however. In addition to the many code examples, we will also walk through building a simple HR-style web application throughout the book. You’ll learn a technology, see some code examples, and then walk through building a real system using the technology. At the end of the book, you’ll have a functional web application that you can work on, and expand on your own with the information from the book.
Frequently Asked Questions about Full Stack JavaScript Development with MEAN
What is the MEAN stack in Full Stack JavaScript Development?
The MEAN stack is a collection of JavaScript-based technologies used to develop web applications. MEAN is an acronym for MongoDB, Express.js, AngularJS, and Node.js. MongoDB is a NoSQL database, Express.js is a web application framework that runs on Node.js, AngularJS is a JavaScript MVC framework, and Node.js is an execution environment for event-driven server-side and networking applications.
Why should I choose MEAN stack for my web development project?
The MEAN stack is a powerful, efficient, and flexible option for web development. It’s entirely JavaScript-based, which means you can use the same language for both server-side and client-side scripts. This can make your development process more streamlined and efficient. Additionally, all the technologies in the MEAN stack are open-source and free to use, which can help keep costs down.
How does MongoDB work in the MEAN stack?
MongoDB is the database component of the MEAN stack. It’s a NoSQL database, which means it can handle large amounts of data and is highly scalable. MongoDB stores data in a binary JSON format, which makes it easy to pass data between client and server.
What role does Express.js play in the MEAN stack?
Express.js is a web application framework that runs on Node.js. It provides a simple interface for building web applications and APIs, and it handles a lot of the boilerplate code that you’d otherwise have to write yourself. This can make your development process faster and more efficient.
How does AngularJS fit into the MEAN stack?
AngularJS is a JavaScript MVC framework that’s used for building web applications. It provides a structured approach to web application development, with features like two-way data binding and dependency injection that can make your code more efficient and easier to manage.
What is the role of Node.js in the MEAN stack?
Node.js is an execution environment for event-driven server-side and networking applications. It’s built on the V8 JavaScript engine, which means it’s incredibly fast. Node.js is also non-blocking, which means it can handle many connections simultaneously, making it a great choice for real-time applications.
How can I get started with MEAN stack development?
There are many resources available to help you get started with MEAN stack development. You might start by learning each of the technologies individually, then learning how they work together. There are many tutorials and guides available online, as well as books and courses.
What are the prerequisites for learning MEAN stack?
Before you start learning the MEAN stack, you should have a basic understanding of JavaScript. It’s also helpful to understand the basics of web development, such as HTML and CSS.
Are there any alternatives to the MEAN stack?
Yes, there are many alternatives to the MEAN stack. Some popular ones include the MERN stack (which replaces AngularJS with React), the MEVN stack (which replaces AngularJS with Vue.js), and the LAMP stack (which uses Linux, Apache, MySQL, and PHP).
What kind of applications can I build with the MEAN stack?
The MEAN stack is incredibly versatile, and you can use it to build a wide range of applications. This includes single-page applications, social networking sites, real-time applications, e-commerce sites, and much more.
Adam Bretz is a software engineer focusing on client and server side JavaScript. Adam earned his Bachelor of Science in Computer Science in 2007 from Millersville University of Pennsylvania. At a previous job, Adam was part of the team of engineers that helped migrate the company from PHP to a pure JavaScript solution. Adam currently resides in the Pittsburgh area with his wife, Jenna.