Node.js is a platform build on Chromes java script run time for easily building fast and scale network applications.It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Good use cases
Node.js is suitable for real time applications. Like that application which has to process a high volume of short messages requiring low latency. These real time application can can be easily developed with Node.js. One of the most popular ones are live-chat and instant-messaging apps.
Ruby on Rails might not be sufficient in terms of speed, if you have a ton of requests. It will prove useful in situations when something faster and more scale than Rails is needed. It is very popular choice among “single-page application” sites. Where all the rendering is done on the client’s side, and the backend only provides a JSON API.
When might Node.js not be the best idea?
There are still some bad use cases when you shouldn’t consider using it.The first thing that comes to my mind are heavy-computing apps. It is based on an event-driven, non-blocking I/O model, and uses only a single CPU core. CPU-heavy operations will just block incoming requests, rendering the biggest advantage of it useless. It would be superfluous for simple HTML or CRUD applications in which you don’t need a separate API, and all data comes directly from the server. Your application might be marginally more scale, but don’t expect more traffic coming to your app just because you used it.