What is Node.js?
- Event Driven and Asynchronous – The APIs which are a part of the Node.js library is considered asynchronous or non-blocking. This means that when a Node.js server is used it never waits for an API to return the data. The server will move onto the next API once it’s called and the notification mechanism of Events found in Node.js helps a server get a response from any previous API call.
- Highly Scalable even though Single Threaded – A Single threaded event looping model is used for Node.js. The event mechanisms help a server responding in a way which is non-blocking. The server is scalable where traditional server creates a limited number of threads to handle the requests. A single-threaded program is used with Node.js and the same program provides service to larger numbers of requests that regular serves such as the Apache HTTP Server.
- There’s no Buffering – When you use Node.js applications data is never buffered. The applications use output data in chunks.
- License – You get Node.js under the MIT license.
Who is Using Node.js?
There are many projects, companies, and applications which are using Node.js. You can fund this list on the github wiki. Some of the well-known ones are GoDaddy, General Electric, PayPal Microsoft, Uber, Yahoo!, Wikipins, Yammer, and others.
This diagram shows the important aspects of Node.js
Where is Node.js used?
Here are the areas where Node.js is perfect to use:
- Data Streaming Applications
- I/O bound Applications
- JSON APIs based Applications
- Data Intensive Real Time Applications (DIRT)
- Single Page Applications
Where you Should Not Use Node.js
Don’t use Node.js for any applications which are CPU intensive.