Intoduction to NodeJS

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. [TutorialsPoint]

Here's a few key point regarding NodeJS,
  • Developed by Ryan Dahl. 
  • Created with the aim of creating real-time websites with push capabilities (websockets).
  • NodeJS is an open source, cross platform runtime environment for server-side and networking applications.
  • Build on V8 engine, Chrome’s JavaScript engine.
  • Uses event-driven, non-blocking I/O model which makes NodeJS lightweight and efficient.
  • Ideal for data-intensive real-time applications that run across distributed devices.
  • NodeJS comes with several JavaScript libraries that help basic programming.
  • NodeJS eco-system ‘npm’ is the largest in the world for open source libraries.

 



Let's see what are key uses of using NodeJS,

  • Not the best platform for CPU intensive heavy computational applications.
  • Ideal for building fast and scalable network applications.
  • NodeJS is capable of handling a huge number of simultaneous connections with high throughput.
  • For each connection NodeJS does not spawn new Thread causing max out of memory instead handle all in single thread using non-blocking I/O model.
  • NodeJS has achieved over 1 Million concurrent connections.
  • Bubbling errors up to NodeJS core event loop will cause crashing the entire program.
So now a few key Advantages,

  • Ability to use single programming language from one end of the application to the other end.
  • NodeJS applications are easy to scale both horizontally and vertically.
  • Delivers improved performance since V8 engine compile the JS code into machine code directly.
  • Performance increased via caching modules into memory after the first use.
  • Easily extensible.
  • Support for common tools like unit testing.
  • Well build ‘npm’ package manager and it’s large number of reusable modules.
At last let's see what are the Disadvantages of using NodeJS,

  • Even though there are number of libraries available, the actual number of robust libraries is comparatively low.
  • Not suitable for computationally intensive tasks.
  • Asynchronous programming model is complex than synchronous model.
Follow my  NodeJS blog series, Coming up Next is "Introduction to NodeJS Coding".

Comments

Popular posts from this blog

Introduction to using ExpressJS with MongooseJS and NodeJS - Part 2

Using OAuth 2.0 Framework to Manipulate Files in Google Drive

Preventing Cross-Site Request Forgery (CSRF) with Double Submit Token Pattern