As an asynchronous event driven framework, 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 is sleeping.
About
Node.js is an open source, cross-platform runtime environment for 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, Linux, FreeBSD, NonStop and IBM i.Node.js provides an event-driven architecture and a non-blocking I/O API that optimizes an application's throughput and scalability. These technologies are commonly used for real-time web applications.
Node.js uses the Google V8 JavaScript engine to execute code, and a large percentage of the basic modules are written in JavaScript. Node.js contains a built-in library to allow applications to act as a Web server without software such as Apache HTTP Server or IIS.
Culled From Wikipedia
Node is similar in design to and influenced by systems like Ruby's Event
Machine or Python's
Twisted. Node takes the event model a bit further,
it presents the event loop as a language construct instead of as a library. In
other systems there is always a blocking call to start the event-loop.
Typically one defines behavior through callbacks at the beginning of a script
and at the end starts a server through a blocking call like
EventMachine::run()
. In Node there is no such start-the-event-loop call. Node
simply enters the event loop after executing the input script. Node exits the
event loop when there are no more callbacks to perform. This behavior is like
browser JavaScript -— the event loop is hidden from the user.
HTTP is a first class citizen in Node, designed with streaming and low latency
in mind. This makes Node well suited for the foundation of web library or
framework.
Just because Node is designed without threads, doesn't mean you cannot take
advantage of multiple cores in your environment. You can spawn child processes
that are easy to communicate with by using our
child_process.fork()
API. Built upon that same interface is the
cluster module, which allows you to share
sockets between processes to enable load balancing over your cores.
Culled From Node.js
Post a Comment