With modern tools. it is possible to create a production grade, full-stack application using HTML, CSS, and JavaScript alone. The combination of MongoDB, Express, AngularJS, and Node.js has become so popular that it has earned the title MEAN stack -- the subject of this book.
This book explores the MEAN stack in detail. We will begin by covering Node.js, as it will lay the groundwork for all of our server-side work. You will learn how to get Node running on your local machine as well as download modules using npm. The key aspects of the Node.js programming model will also be covered.
From there, we will move on to MongoDB, where you'll learn how to interact with Mongo from a Node application. You will also learn how to create, retrieve, update, and delete data from a Mongo store.
After you have a solid grasp on Node and Mongo, the book will move on to the Express web server. We'll cover the basics of Express applications via topics like routes and middleware. Building on previous chapters, we will cover the integration of Node, Mongo, and Express.
Our coverage of the MEAN stack will wrap up with several chapters on AngularJS. These chapters will cover Angular fundamentals like data binding, directives, controllers, routing, and services. In an effort to explore competing technologies, a slight introduction to Ember.js will also be provided.
"Full stack JavaScript" is not fully encompassed by the MEAN stack. There is an entire ecosystem of JavaScript tools to learn about, and this book will introduce a few of them. We will cover task runners Gulp.js and Grunt.js which are extremely useful for automating mundane, repetitive tasks. We'll also cover JSHint, a linting tool used to improve code quality. Linting tools analyze source code and report potentials issues - a feature that is especially useful in non-compiled languages like JavaScript.
It's well-paced in terms of introducing the technologies layer-by-layer in the stack, which is good for a beginner. It covers breadth without depth, which is okay since each layer warrants its own book in order to cover comprehensively.
However, this book has numerous editorial issues. (see below) That ends up making it a frustrating read as you try to make sense of explanations and mistakes. It definitely could have been better.
----------------- The code snippets and the text are often: 1) Inconsistent - The text refers to things in the code snippet that do not exist at all
2) Absent - The text explains its code, without attaching code snippets at all
3) Inadequate - Code dump (esp. near the end where they dropped 3-4 pages of Node controllers) without explanation, or just gave a one-liner explanation
4) Piecewise - Never was a complete application code given; they distributed it piecewise within the chapter and across the chapters. This is a problem mainly because they: __ i) talk about replacing code from snippets in past chapters __ii) append new code onto snippets in past chapters, __iii) invoke calls to functions declared in past snippets (and finding the right version if they've modified across chapters), __iv) show snippets which is designed based on, and makes invocations to, code that is yet-to-be declared until the subsequent sub-chapter. They don't explain this, neither in the current nor future code. You're left perplexed until several pages later, when you retrospectively make your own inference that the future code is actually a dependency for the past code.