Though one can create any type of applications in Node.js, yet it really shines in:
As compared to other server-side technologies such as Java, .Net, PHP etc, Node.js is really fast because of the following reasons:
Non-blocking Input/Output: Node.js executes time-consuming input/output operations in asynchronous manner i.e. while the input/output operations are being performed in the background, Node.js is free to serve other requests.
Node.js provides a complete development ecosystem in the form of node packages (libraries) on npm registry and tried and tested frameworks such as Express.js, Meteor.js, Sails.js, Socket.io, Electron etc to facilitate faster application development.
On the npm marketplace, more than a million packages are registered which have more than 11 billion downloads. Each day more than 10,000 new packages are being added to the npm marketplace.
The single-threaded architecture of Node.js ensures that there is no overhead of thread-synchronization which makes it highly scalable. With the help of tools such as pm2, any number of node instances can be started and stopped as per demand.
As compared to other server-side technologies such as Java which has a steep learning curve and requires a lot of time to master, Node.js is easier and requires less time to master.
Node.js is powering the applications of high-profile companies such as Uber, Netflix, LinkedIn, Trello, Medium, Groupon etc and has become the go-to platform for startups and tech companies around the world for developing Web-APIS, network applications, social media applications, real-time chat based applications and desktop applications.
The major limitations of Node.js is that it can’t be used for the development of CPU intensive applications. In such applications, single thread of Node.js gets blocked by CPU intensive operations rendering the application unresponsive.
As Node.js is evolving, we can hope that this limitation will be resolved soon. A start has already been made in this direction by introducing the concept of worker threads in 10.5.0 release as an experimental feature.
Jellyfish Technologies is one of the early adopters of Node.js. We started application development in Node.js in 2011. We have developed numerous Node.js applications using Express.js, Sails.js and Electron frameworks. These apps belongs to diverse domains such as social media, micro-finance, sports & leisure, e-commerce, productivity, fitness etc.