Accroding to official documentation defintion of Node.js inis as follows:
Features of Node.js
Below there are few of the important features which are making Node.js as the first choice of software architects.
- Aynchronous and Event Driven All APIs of Node.js library are aynchronous that is non-blocking. It essentially means a Node.js based server never waits for a API to return data.
- Node uses V8 Engine, the virtual machine that powers Google Chrome, for server-side programming.
V8 gives Node a huge boost in performance because it cuts out the middleman, preferring straight compilation into native machine code over executing bytecode or using an interpreter.
- Single Threaded but highly Scalable – Node.js uses a single threaded model with event looping. Event mechanism helps server to respond in a non-bloking ways and makes server highly scalable as opposed to traditional servers which create limited threads to handle requests. Node.js uses a single threaded program and same program can services much larger number of requests than traditional server like Apache HTTP Server.
- No Buffering – Node.js applications never buffer any data. These applications simply output the data in chunks.
Application: where to Use Node.js?
Node.js is a perfect technology in below areas:
- JSON APIs based Applications (NoSQL Databases like MongoDB, Cassandra, Redis)
- I/O bound Applications
- Data Streaming Applications
- Data Intensive Realtime Applications (DIRT)
- Evented and asynchronous
- Designed for data-intensive real-time applications