What is Node.js?
Features of Node.js
Asynchronous and Event Driven − All APIs of Node.js library are asynchronous, or in other words, they are non-blocking. It essentially means a Node.js based server never waits for an API to return data. The server moves to the next API after calling it and a notification mechanism of Events of Node.js helps the server to get a response from the previous API call.
Single Threaded but Highly Scalable − Node.js uses a single threaded model with event looping. Event mechanism helps the server to respond in a non-blocking way and makes the server highly scalable as opposed to traditional servers which create limited threads to handle requests. Node.js uses a single threaded program and the same program can provide service to a much larger number of requests than traditional servers like Apache HTTP Server.
No Buffering − Node.js applications never buffer any data. These applications simply output the data in chunks.
License − Node.js is released under the MIT license
Who Uses Node.js?
This list includes eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo!, and Yammer. These huge, well-known companies use Node.js in their Projects, Applications and Companies.
Concepts in Node.js
Some Important aspects of Node.js are Console, Cluster, Add-ons, Buffer, Callbacks, Crypto, Error Handling, Net, Global, Domain, DNS, Streaming, Debugger and Modules.
Where to Use Node.js?
Node.js is very powerful and useful in areas which are I/O bound Applications, Data Streaming Applications, Data Intensive Real-time Applications, JSON APIs based Applications and Single Page Applications.
Where Not to Use Node.js?
It is not advisable to use Node.js for CPU intensive applications.