Node.js is best suited for web applications that need to handle real-time, high traffic communication between many, many users via simultaneous connections. For example, social media sites that require constant posts or “likes”, dashboard-driven applications that are retrieving data and then presenting it to the user, and updating in real time, or applications that send out push notifications to the web browser, or chat and collaboration applications which involve many users communicating with each other.
One important thing to note however, is that Node.js should NOT be used for applications or tasks that require a high amount of computing power such as large computations. This is because Node.js would need to wait until the server has completed the computation before being able to use the server’s thread again. This essentially “blocks” the thread from all of the other high traffic messages and communication on the thread and would effectively mitigate any benefits of the Node.js technology.
Like all technology platforms, proper technical planning and thought should be employed in the early stages of custom web application development to first understand the functional and system requirements before deciding on the right technology set to use. However, if your web application plans call for a large number of simultaneous connections, and needs to be fast and highly scalable, then Node.js is likely a good candidate for this purpose.