– Asynchronous event driven IO helps concurrent request handling.
– Active and vibrant developer community, with lots of code shared via github, etc.
– NPM modules: modules and libraries available for almost every possible scenario.
– Perfect for microservices architecture
– Node.js doesn’t provide scalability. One CPU is not going to be enough; the platform provides no ability to scale out to take advantage of the multiple cores
– Dealing with relational database can be difficult if you are using Node.
– Every time using a callback end up with tons of nested callbacks.
– Due to asynchronous nature, working on the logic is little complex.
– Node.js is not suited for CPU-intensive tasks. It is suited for I/O stuff only (like web servers).