Node.js features , uses , advantages and disadvantages
As it’s a single threaded program , It offers many options for having a good grip over run-time executions such as call-back methods & event loops , Node package modules (npm) has already increased in size & It is still growing , Streaming big files is possible with Node.js .
Node.js is open source , so it is free to use & you can extend it as per your need , There is no need to pay for license & There are many open source modules supported by Node.js , Event-driven architecture of node.js is appropriate for the real-time applications , especially the chat applications & the games .
You can scale your Node.js application by using two ways the Horizontal Scaling & Vertical Scaling , that helps you to improve your application performance , In Horizontal scaling you can add more nodes to your existing system and in Vertical scaling you can add more resources to a single node .
Node.js is easy to scale , The developers have the option to scale the Node.js applications by using two ways which are the Horizontal Scaling & Vertical Scaling , that helps the developers to improve their application performance .
Node.js offers a wide community of developers around the world , They are active in development of new modules or the packages to support different types of applications development , PayPal reported 2 times increase in developer productivity after using node.js .
Node.js supports caching of modules , Each time a module is requested for the first time , It is cached in the application memory , The application can load the cached modules quickly without requiring the module code to be re-executed , The caching feature enables the application to load the web pages & respond to the user requests more quickly .
When you use Node.js , you can develop Restful services API easily , Despite being lightweight , Node.js offers some built-in APIs that help you to create different types of Servers like HTTP Server , DNS Server , TCP Server etc. and Node.js helps the developers to take advantage of many commonly used tools .
Node.js is isn’t consistent , It does not support the relational databases , Using it is difficult for the programmers for high intensive computational tasks , It is important to use the callback end up every time with the bulk of nested callbacks .
Many programmers complain that Node.js API ( Application Programming Interface ) keeps changing at frequent intervals , The new API comes with a number of backwards-incompatible changes , So , it is important for the programmers to make the changes to the existing code base to make it compatible with the latest version of Node.js API .
The asynchronous programming approach is important if we want to enhance Node.js scalability , The developers have the split opinion on this as this approach is quite complex than the linear blocking I/O programming and it makes the code messy .
Node.js at present , isn’t supportive to both multi-threaded programmings , So , It is unsuitable for large and complicated web applications , It doesn’t support multi-threaded programming , Node is good for executing synchronous and CPU intensive tasks .