Product Cover Image

Learning Node.js: A Hands-On Guide to Building Web Applications in JavaScript

By Marc Wandschneider

Published by Addison-Wesley Professional

Published Date: Jun 20, 2013


Learning Node.js
A Hands-On Guide to Building Web Applications in JavaScript

Node.js makes it far easier to create fast, compact, and reliable web/network applications and web servers, and is rapidly becoming indispensable to modern web developers.

Learning Node.js brings together the knowledge and JavaScript code you need to build master the Node.js platform and build server-side applications with extraordinary speed and scalability.

You’ll start by installing and running Node.js, understanding the extensions it uses, and quickly writing your first app. Next, building on the basics, you’ll write more capable application servers and extend them with today’s most powerful Node.js tools and modules. Finally, you’ll discover today’s best practices for testing, running Node.js code on production servers, and writing command-line utilities.

Throughout the book, author Marc Wandschneider teaches by walking you line-by-line through carefully crafted examples, demonstrating proven techniques for creating highly efficient applications and servers.
  • Build Node.js solutions that leverage your current JavaScript skills
  • Master Node.js nonblocking IO and async programming
  • Handle more requests and increase your application’s flexibility
  • Use and write your own modules
  • Perform common JSON/web server tasks
  • Use browsers to generate pages on the fly via Ajax calls and template libraries
  • Simplify development with the express framework
  • Create database back-ends using popular NoSQL and relational databases
  • Deploy and run Node.js apps on Unix/OS X or Windows servers
  • Take advantage of multiprocessor hardware
  • Support virtual hosts and SSL/HTTPS security
  • Test Node.js programs that mix synchronous, async, and RESTful server API functionality


Table of Contents



Chapter 1  Getting Started

Installing Node.js
Running Node.js and “Hello World!” 
Your First Web Server 
Debugging Your Node.js Programs
Staying Up-to-Date and Finding Help

Chapter 2  A Closer Look at JavaScript 

Type Comparisons and Conversions
Language Constructs
Classes, Prototypes, and Inheritance 
Errors and Exceptions 
Some Important Node.js Globals 
Chapter 3  Asynchronous Programming
The Old Way of Doing Things
The Node.js Way of Doing Things
Error Handling and Asynchronous Functions 
Who Am I? Maintaining a Sense of Identity
Being Polite–Learning to Give Up Control
Synchronous Function Calls

Chapter 4  Writing Simple Applications

Your First JSON Server
Node Pattern: Asynchronous Loops
Learning to Juggle: Handling More Requests
More on the Request and Response Objects
Increased Flexibility: GET Params 
Modifying Things: POST Data
Chapter 5  Modules
Writing Simple Modules
npm: The Node Package Manager
Consuming Modules
Writing Modules
A Module So Common It Should Be Built In
Chapter 6  Expanding Your Web Server
Serving Static Content with Streams 
Assembling Content on the Client: Templates   

Chapter 7  Building Web Applications with Express

Installing Express 
Routing and Layers in Express 
REST API Design and Modules 
Additional Middleware Functionality 
Chapter 8  Databases I: NoSQL (MongoDB)
Setting Up MongoDB  
Structuring Your Data for MongoDB  
Understanding the Basic Operations    
Updating Your Photo Albums App
Recapping the App Structure 
Chapter 9  Databases II: SQL (MySQL) 
Getting Ready
Creating a Schema for the Database 
Basic Database Operations   
Adding Authentication to the Application  
Resource Pooling  

Chapter 10  Deployment and Development  

Multiprocessor Deployment: Using a Proxy 
Virtual Hosting 
Securing Your Projects with HTTPS/SSL 
Multiplatform Development  
Chapter 11  Command-Line Programming
Running Command-Line Scripts     
Working with Files Synchronously 
Interacting with the User: stdin/stdout   
Working with Processes 
Chapter 12  Testing 
Choosing a Framework  
Writing Tests 
RESTful API Testing