Nevertheless, it is important not to rush things: Despite all the hype, Node.js is not equally suitable for all scenarios. Like every tool, Node.js has strengths and weaknesses. This raises the question for which projects Node.js is a good choice and for which not.
Where there's shadow…
A first clear indication of which scenarios Node.js is unsuitable for is already given by the vision mentioned on the platform's website:
A central aspect of Node.js is the asynchronous, non-blocking input and output of data within an event loop. Those who are familiar with these concepts know that complex processes can block the entire application.
Forms over Data
Classic CRUD-based applications are less sensitive. There is at least nothing against the use of Node.js in these applications. For the Forms over Data paradigm Node.js is therefore not better or worse suited than ASP.NET Core, PHP or comparable technologies. The only essential advantage of Node.js is that it offers a unified language and a unified data format for the client and the server.
JSON-based REST services
Although Node.js has built-in support for the HTTP and HTTPS protocols, these are not the only viable variants. There are numerous modules that complement support for alternative protocols such as SPDY or web sockets. This enables a connection from the server to the client and on this basis push-based data transmission.
The scenarios in which Node.js can play out its strengths are the future of modern web applications: JSON-based REST services, streaming, web real-time and single-page applications are trends that have been becoming increasingly difficult to ignore.
So if you are involved in the development of such services and applications, you are well advised to put Node.js on your list of technologies to use.