#### Advantages:-

- Non-blocking

- I/O Operations (Sync and Async)

- Same language for back-end as well as front-end:- Saves time, Easy to learn and consumes less time to work with it.

- Known for Offering High Performance

  It has been mentioned earlier that Node.js interprets the JavaScript code via Google’s V8 JavaScript engine. This engine complies the JavaScript code directly into the machine code. This makes it easier and faster to implement the code in a effective manner.

  The speed of the code execution also enhanced by runtime environment as it supports the non-blocking I/O operations.

- Large and active community of developers

- Node.js also provides the facility of caching single modules

- The developers can get an extended support for the various commonly used tools. if you want to identify and install the project dependencies, you can make use of npm, a powerful package manager.

- Handles the Requests Simultaneously

  Since the Node.js is providing the option of non-blocking I/O systems, it relatively helps you to process several requests concurrently.

- Node.js is Highly Extensible

  The Node.js is known to be highly extensible, which means that you can customize and further extend Node.js as per their requirements.

- Real-time applications

- Building Cross-Platform Applications (libuv makes the nodejs compatible with all OS)

- **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. Server moves to next API after calling it and a notification mechanism of Events of Node.js helps server to get response from the previous API call.

- **Very Fast** - Being built on Google Chrome's V8 JavaScript Engine, Node.js library is very fast in code execution.

- **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.



#### Disadvantages:-