PREFACExvi
Many of the best practices from this book were borne from the pain of finding out
the hard way during these years. Something that might seem harmless, most definitely
easier, or sometimes even sensible at the time can come back to bite you later. Don’t
let this put you off from diving in and having a go. Mistakes are there to be made,
and—in this arena, at least—mistakes are a great way of learning. They say that intelli-
gence is learning from your mistakes. This is true, but you’ll be a step ahead if you can
also learn from others’ mistakes.
The web development landscape changed over the years, but I was still heavily
involved with creating—or managing the creation of—full websites and applications. I
came to appreciate that there’s a real art to gluing together applications made from
different technologies. It’s a skill in itself: knowing the technologies and what they can
do is only part of the challenge.
When Node.js came onto my radar, I jumped right in and embraced the idea full
on. I had done a lot of context switching between various languages, and the idea of
having a single language to focus on and master was extremely compelling. I figured
that when used the right way, JavaScript could streamline development by reducing
the cost of context switching between languages. Playing with Node, I started to create
my own MVC framework before discovering Express. Express solved a lot of the prob-
lems and challenges I faced when trying to learn Node and use it to create a website or
web application. In many ways, adopting it was a no-brainer.
Naturally, behind pretty much any web application is a database. I didn’t want to
fall back on my previous go-to option, Microsoft SQL Server, as the cost made it pro-
hibitive to launch small personal projects. Some research led me to the leading open
source NoSQL database: MongoDB. It worked natively with JavaScript! I was possibly
more excited than I should have been about a database. But MongoDB was different
from all the databases I’d used before. My previous experience was with relational
databases; MongoDB is a document database, which is something quite different,
making the way you approach database design quite different as well. I had to retrain
my brain to think in this new way, and eventually, it all made sense.
There was one piece missing. JavaScript in the browser was no longer only about
enhancing functionality; it was also about creating the functionality and managing the
application logic. Of the available options, I was already leaning toward AngularJS.
When I heard Valeri Karpov of MongoDB coin the term “MEAN stack,” that was it. I
knew that here was a next-generation stack.
I knew that the MEAN stack would be powerful. I knew that the MEAN stack would
be flexible. I knew that the MEAN stack would capture the imagination of developers.
Each of the individual technologies is great, but when you put them all together, you
have something exceptional on your hands. This is where Getting MEAN comes from.
Getting the best out of the MEAN stack is about more than knowing the technologies;
it’s also about knowing how to get those technologies working together.
This second edition takes things to the next level. Angular moved from JavaScript
to TypeScript, a superset of JavaScript that introduces typesafety. We bring the Angu-
lar component right up to date in this edition and use advances in JavaScript to make
building applications easier and simpler to understand.