What is Node.js?
Node.js is a server side platform built on Google Chrome's JavaScript Engine (V8 Engine). Node.js was developed by Ryan Dahl in 2009 and its latest version is v0.10.36. The definition of Node.js as supplied by its official documentation is as follows −
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.
Node.js is an open source, cross-platform runtime environment for developing server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, and Linux.
Node.js also provides a rich library of various JavaScript modules which simplifies the development of web applications using Node.js to a great extent.
Node.js = Runtime Environment + JavaScript Library
Features of Node.js
Following are some of the important features that make Node.js the first choice of software architects.
- Asynchronous and Event Driven All APIs of Node.js library are asynchronous that is, non-blocking. It essentially means a Node.js based server never waits for an API to return data. The server moves to the next API after calling it and a notification mechanism of Events of Node.js helps the server to get a 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 the server to respond in a non-blocking way and makes the server highly scalable as opposed to traditional servers which create limited threads to handle requests. Node.js uses a single threaded program and the same program can provide service to a much larger number of requests than traditional servers like Apache HTTP Server.
- No Buffering - Node.js applications never buffer any data. These applications simply output the data in chunks.
- License - Node.js is released under the MIT license.
Who Uses Node.js?
Following is the link on github wiki containing an exhaustive list of projects, application and companies which are using Node.js. This list includes eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo!, and Yammer to name a few.
Concepts
The following diagram depicts some important parts of Node.js which we will discuss in detail in the subsequent chapters.
Where to Use Node.js?
Following are the areas where Node.js is proving itself as a perfect technology partner.
- I/O bound Applications
- Data Streaming Applications
- Data Intensive Real time Applications (DIRT)
- JSON APIs based Applications
- Single Page Applications
Where Not to Use Node.js?
It is not advisable to use Node.js for CPU intensive applications.
1.Node.js - Environment Setup
Local Environment Setup
If you are still willing to set up your environment for Node.js, you need the following two softwares available on your computer, (a) Text Editor and (b) The Node.js binary installables.
Text Editor
This will be used to type your program. Examples of few editors include Windows Notepad, OS Edit command, Brief, Epsilon, EMACS, and vim or vi.
Name and version of text editor can vary on different operating systems. For example, Notepad will be used on Windows, and vim or vi can be used on windows as well as Linux or UNIX.
The files you create with your editor are called source files and contain program source code. The source files for Node.js programs are typically named with the extension ".js".
Before starting your programming, make sure you have one text editor in place and you have enough experience to write a computer program, save it in a file, compile it and finally execute it.
The Node.js Runtime
The source code written in source file is simply javascript. The Node.js interprter will be used to interpret and execute your javascript code.
Node.js distribution comes as a binary installable for SunOS , Linux, Mac OS X, and Windows operating systems with the 32-bit (386) and 64-bit (amd64) x86 processor architectures.
Following section guides you on how to install Node.js binary distribution on various OS.
Download Node.js archive
Download latest version of Node.js installable archive file from Node.js Downloads. At the time of writing this tutorial, I downloaded node-v0.12.0-x64.msi and copied it into C:\>nodejs folder.
OS | Archive name |
---|---|
Windows | node-v0.12.0-x64.msi |
Linux | node-v0.12.0-linux-x86.tar.gz |
Mac | node-v0.12.0-darwin-x86.tar.gz |
SunOS | node-v0.12.0-sunos-x86.tar.gz |
Installation on UNIX/Linux/Mac OS X, and SunOS
Extract the download archive into /usr/local, creating a NodeJs tree in /usr/local/nodejs. For example:
tar -C /usr/local -xzf node-v0.12.0-linux-x86.tar.gz
Add /usr/local/nodejs to the PATH environment variable.
OS | Output |
---|---|
Linux | export PATH=$PATH:/usr/local/nodejs |
Mac | export PATH=$PATH:/usr/local/nodejs |
FreeBSD | export PATH=$PATH:/usr/local/nodejs |
Installation on Windows
Use the MSI file and follow the prompts to install the Node.js. By default, the installer uses the Node.js distribution in C:\Program Files\nodejs. The installer should set the C:\Program Files\nodejs directory in window's PATH environment variable. Restart any open command prompts for the change to take effect.
Verify installation: Executing a File
Create a js file named test.js in C:\>Nodejs_WorkSpace.
File: test.js
console.log("Hello World")
Now run the test.js to see the result:
C:\Nodejs_WorkSpace>node test.js
Verify the Output
Hello, World!
2.Node.js - First Application
Before creating actual Hello World ! application using Node.js, let us see the parts of a Node.js application. A Node.js application consists of following three important parts:
- import required module: use require directive to load a javascript module
- create server: A server which will listen to client's request similar to Apache HTTP Server.
- read request and return response: server created in earlier step will read HTTP request made by client which can be a browser or console and return the response.
Creating Node.js Application
Step 1: import required module
use require directive to load http module.
var http = require("http")
Step 2: create an HTTP server using http.createServer method. Pass it a function with parameters request and response. Write the sample implementation to always return "Hello World". Pass a port 8081 to listen method.
http.createServer(function (request, response) { // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // send the response body as "Hello World" response.end('Hello World\n'); }).listen(8081); // console will print the message console.log('Server running at http://127.0.0.1:8081/');
Step 3: Create a js file named test.js in C:\>Nodejs_WorkSpace.
File: test.js
var http = require("http") http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8081); console.log('Server running at http://127.0.0.1:8081/');
Now run the test.js to see the result:
C:\Nodejs_WorkSpace>node test.js
Verify the Output. Server has started
Server running at http://127.0.0.1:8081/
Make a request to Node.js server
Open http://127.0.0.1:8081/ in any browser and see the below result.
Thanks TutorialPoint.
No comments:
Post a Comment