Nodejs

Nodejs is an asynchronous event driven run time environment based on google chrome’s JavaScript engine. NodeJs is used to develop an scalable network application. Nodejs let us to run the JavaScript in the server side.

In summary

  • Nodejs is open source server side JavaScript run time environment.
  • Nodejs is free to use and run on multi platforms like windows, macosx, Linux
  • Nodejs is asynchronous, event driven programming language.
  • Node.js operates on an event loop using a single thread

How Nodejs is different

  • Nodejs use asynchronous execution model as opposed to thread based execution model.
  • No locks are used so users are free from worries of deadlocking of process.
  • Scalable systems are develop in nodejs, because process never blocks the resource.
  • Nodejs is single threaded that doesn’t mean it cannot take the advantage of multi core CPU, child process can be created using child_process.fork() API. cluster module exist which let to share the sockets between process to communicate with each other.

If you are interested in blocking vs non blocking process here is the detailed article.

Client side versus Server side

Client side

  • Client side refers to a code that you write for a user web browser.
  • JavaScript is used to add interactivity like animation to improve user experiences.
  • Also called programming for front end.

Server side

  • Writing a code at the back end for application logic regarding how to create, read, update and delete data from a database based on user request.
  • Server side coding is responsible with User authentication, Authorization, Permission management, running scheduled tasks and responding the user request.

The client-side represent the browser where user access an application where server-side represents an application which handles, validates, and run user-submitted data by the user and response the user request such as providing different user interface based on user request.

Leave a Reply

Your email address will not be published. Required fields are marked *