Node JS

Node.js is an open-source, cross-platform runtime environment used for the development of server-side web applications. Node.js applications are written in JavaScript and can be run on a wide variety of operating systems.

Node.js is based on an event-driven architecture and a non-blocking Input/Output API that is designed to optimize an application's throughput and scalability for real-time web applications.

A lot of work had to be done to maintain the session information between requests for a user. But with Node.js, there is finally a way for web applications to have real-time two-way connections, where both the client and server can initiate communication, allowing them to exchange data freely.

Node uses the V8 JavaScript Runtime engine, the one which is used by Google Chrome. Node has a wrapper over the JavaScript engine which makes the runtime engine much faster and hence the processing of requests within Node also become faster.

Handling of concurrent requests – Another key functionality of Node is the ability to handle concurrent connections with a very minimal overhead on a single process.

The Node.js library uses JavaScript – This is another important aspect of development in Node.js. A major part of the development community is already well versed in javascript, and hence, development in Node.js becomes easier for a developer who knows javascript.

Node.js is used by many large companies. Below is a list of a few of them.

  • Paypal - A lot of sites within Paypal have also started the transition onto Node.js.
  • LinkedIn - LinkedIn is using Node.js to power their Mobile Servers, which powers the iPhone, Android, and Mobile Web products.
  • Mozilla has implemented Node.js to support browser APIs which has half a billion installs.
  • eBay hosts their HTTP API service in Node.js

Node.js is best for usage in streaming or event-based real-time applications like,

  • Chat applications
  • Game servers - Fast and high-performance servers that need to processes thousands of requests at a time, then this is an ideal framework.
  • Good forcollaborative environment - This is good for environments which manage documents. In a document management environment, you will have multiple people who post their documents and do constant changes by checking out and checking in documents. So Node.js is good for these environments because the event loop in Node.js can be triggered whenever documents are changed in a document managed environment.
  • Advertisement servers - Again here you could have thousands of request to pull advertisements from the central server and Node.js can be an ideal framework to handle this.
  • Streaming servers - Another ideal scenario to use Node is for multimedia streaming servers wherein clients have request's to pull different multimedia contents from this server.