How does Node.js works?
Let's take a simple example, a program created in a language like PHP or Python depends on a traditional thread based model for client connections. To execute a request each connection creates an Operating System (OS) thread which minimum consume around 2MB system memory so if your application is on the server with 4096MB (4GB) RAM then your server can handle maximum 2048 client connections before exhausting server's memory.
Where as Node.js connection uses a very small amount of memory while connecting due to usage of Event Driven Programming. Then, Node.js uses callbacks or references to inform the OS that a new connection is being requested. So the majority of the time Node.js does not disturb the OS, and this can increase overall performance and efficiency of the server.
Some things you should know about Node.js
- Node.js is Asynchronous and Event Driven.
- Node.js is fast which can lead to increased performance and efficiency of the server.
- No or minimal file locking as two or more processes share same resource.
- Node.js is released under the MIT license.
- NPM (Node Package Manager) which is repositories for Node.js packages/modules works broadly.
Node.js disadvantages :-
- Can't be run on most shared-hosting servers.
- Still new and lacks some wider database support.
- You must have a Virtual Private Server (VPS) or Dedicated Server in order to install Node.js, this can't be install on the shared hosting server.
- Root access needed to run commands on the server.
- Software dependencies like openssl, Python2.6+ and a compiler like gcc must be installed on the server.
- Login to your server via root user via SSH.
- Install Software dependencies like openssl, Python2.6+ and gcc.
yum install openssl-devel
yum install python26
yum install gcc-c++
- Now, go to your server's source directory
- Download the latest copy of Node.js
- Extract the Node.js archive:
tar zxvf node-latest.tar.gz
- Now, go to the Node.js directory:
- Configure and install Node.js using below commands
- Finally you can test your Node.js installation by simply calling the node interpreter.
root@server [~]# node
Do let us know your thoughts in our comments section below.