As we all know, Node.js is an open source, cross platform run time environment for server side and networking applications. It brings event-driven programming to web servers that enable the development of fast web servers in Java Script.
In an event driven application, there is one main program that runs and then listens for events and triggers a call back function whenever it encounters an event. Node.js also provides a non blocking IO API that essentially optimizes the application’s throughput and scalability. In very basic terms, in a non blocking language, commands execute in parallel and make use of call backs to signal a completion. Well, in a blocking language commands execute only after the previous command has been completed.
In node.js a large part of the basic modules are written in Java Script and it uses the Google’s V8 JavaScript engine to execute the code. Node.js also contains a built in library that allows applications to act as a web server without the need to install software like Apache HTTP Server or IIS.
Today, node.js is the most popular and widely used server side framework for small and large sized web applications.
Here are some of the advantages of node.js
Node.js is open source and there is no license fee to be paid. You can use it in any way and as many applications as you wish.
This is one platform that uses JavaScript for programming the frontend and backend and hence is more efficient due to increased productivity and code reusability.
Node.js can be scaled both vertically as well as horizontally. This greatly helps improve the application performance. With horizontal scaling, you can add more nodes to the existing system and with vertical scaling; you can add more resources on a single node.
As mentioned earlier, node.js operations are non-blocking and hence provide better performance. It also uses Google’s V8 JavaScript engine which compiles the JS code directly into machine code and makes the entire processing faster.
Node.js has features that support caching of the modules. With this feature, when a node.js module is requested for the first time, it is cached in the application memory. Next time the mode is called by the application, the entire code is not executed again – it simply looks into the cache.
Node.js can be executed on the server side as well as the client side. It is also known to support the exchange of data using JSON which is easily consumed by JavaScript. This makes it lightweight as compared to other frameworks.
However, as far as the limitations are concerned, node.js does not support multi-threaded programming and it also does not support very high end computation intensive tasks. This is because when it executes a long running task, it will queue all the incoming requests until it executes – since it is following a JavaScript event in a single thread.
Finally, in addition to its many capabilities, node.js has a thriving open source community which keeps improving it and develops a number of new and improvised modules that add new capabilities to the node.js applications!
Image Credit : https://tinyurl.com/qqhwe3w