Welcome to the world of developing web software using Node (also known as Node.js). Node is a newly-developed software platform that liberates JavaScript from the web browser, enabling it to be used as a general software development platform in server-side applications. It runs atop the ultra-fast JavaScript engine from the Chrome browser, V8, and adds in a fast and robust library of asynchronous network I/O modules. The primary focus of Node is on building high performance, highly scalable server and client applications for the "Real Time Web".
The platform was developed by Ryan Dahl in 2009 after a couple of years of experimenting with developing web server components in Ruby and other languages. The exploration led him to the architectural choice of using asynchronous event-driven systems rather than the traditional thread-based concurrency model. This model was chosen because it's simpler (threaded systems are notoriously difficult to develop), has lower overhead over maintaining a thread-per-connection, and for speed. The goal of Node is to provide an "easy way to build scalable network servers". The design is similar to and influenced by other systems such as Event Machine (Ruby) and Twisted framework (Python).
This book, Node Web Development, focuses on building web applications using Node. We will be taking a tour through the important concepts required to speed up with Node. To do so we'll be writing real applications, dissecting them to scrutinize how they work, and discussing how to apply the ideas to your own programs. We'll install Node and npm, and learn how to install or develop npm packages and Node modules. We'll develop several applications, ponder the effects of long-running calculations on event loop responsiveness, look at a couple of ways to distribute heavy workloads to other servers, work with the Express framework, and more.