Node.jsĀ® is an open-source, cross-platform JavaScript runtime environment.
As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications. In the following “hello world" example, many connections can be handled concurrently. Upon each connection, the callback is fired, but if there is no work to be done, Node.js will sleep.



Parts of Node.js
Modules
Modules are like JavaScript libraries that can be used in a Node.js application to include a set of functions.
Console
The console module provides a method for debugging similar to the basic JavaScript console provided by internet browsers.
Cluster
Node.js is built-on on the concept of single-threaded programming.
Global
Global objects in Node.js are available in all modules.
Error Handling
Node.js applications experience four types of errors.
Streaming
Streams are the objects that let you read data or write data continuously.
Buffer
Buffer is a module that allows the handling of streams that contain only binary data.
Domain
The domain module intercepts errors that remain unhandled.
DNS
DNS module is used to connect to a DNS server and perform name resolution.
Debugger
Node.js includes a debugging utility that can be accessed by a built-in debugging client.