I had a little exposure to Node JS and MongoDB during one of my academic projects, but the other two Express JS and Angular JS were very new to me.
So the first order of business was to understand the importance of each of these technologies and how they fit in together for a web application to come to life.
So lets dive into it right away.
When you go visit the about page of Node.js the first example they give you is to create a simple HTTP server. I feel this kind of sets an impression on a beginner that Node.js is used for creating a web server. But that is not entirely true. Creating a server is just one of the many capabilities Node.js offers. Node.js is a platform. It is a platform which allows you to use its libraries to build a web server and that is just one application.
So why Node.js?
- It buys true platform independence. Like Java, Node.js also offers a write once run anywhere kind of environment and this is important not just for your production targets but for your development platforms as well. Linux users and windows users all can publish to a common target without coming across platform specific issues.
- Its single threaded and event based so it is fast even when handling lots of requests at once.
- It has a large number of packages accessible through NPM, a package manager. It includes both client and server-side libraries/modules, as well as command-line tools for web development.