When I talk to developers about node.js, a conversation usually goes something like this:
“I heard node.js is a great platform for developing web applications.”
You have to think about a web application in a series of parts. Saying that node.js is a great platform for developing web applications is like saying Java or C# is a great platform for developing web applications. You would be correct, but you are missing many important parts of the web development picture.
If you have heard of node.js, you might also be familiar with the term “MEAN stack”.
- M is for MongoDB, which represents your data-persistence layer (fancy way to say database). You could also use MySQL, SQL Server, or Postgres to achieve the same results.
- E is for Express, which is a web framework built on top of node.js. Express is not the only framework available for building out web applications on node.js, but it is one of the more popular. Other options would include Hapi or Koa.
- A is for Angular, which is a client side framework for building web applications. Express and node.js are only for the server to work with. You need to have a great way to manage the interactions on the web page served up by Express. Angular is one of the more popular frameworks available for doing just that. Other options would include React, Knockout, or Ember.
- Finally, N is for node.js. It’s the glue that holds everything together. Node.js gives you the ability to rapidly develop web applications that are fast and easy to maintain.
All these pieces, plus many more are all cogs in the big machine that is a web application. If one cog is missing, the machine will fall apart at an instant.
Kevin Griffin is an author, teacher, mentor, and consultant focusing in software development. He is the author of the Twilio Blueprint (http://twilioblueprint.com). As an independent consultant, Kevin specializes in helping businesses push their technology stacks into the 21st century. You can often find Kevin speaking at conferences and user groups across the country or blogging at http://kevgriffin.com.