Register your product to gain access to bonus material or receive a coupon.
Node.js, MongoDB and AngularJS Web Development
The definitive guide to building using the MEAN stack to build web applications
Also known as the MEAN stack, Node.js, MongoDB, and AngularJS are three new web development technologies that together provide an easy to implement, fully integrated web development stack. Node.js is a leading server-side programming environment, MongoDB is the most popular NoSQL database, and AngularJS is quickly becoming the leading framework for MVC-based front-end development. Together they allow web programmers to create high-performance sites and applications built completely in JavaScript, from server to client.
Node.js, MongoDB and AngularJS Web Development is a complete guide for web programmers who want to integrate these three technologies into full working solutions. It begins with concise, crystal-clear tutorials on each of the three technologies and then quickly moves on to building several common web applications.
Readers will learn how to use Node.js and MongoDB to build more scalable, high-performance sites, how to leverage AngularJS's innovative MVC approach to structure more effective pages and applications, and how to use all three together to deliver outstanding next-generation Web solutions.
Contents at a Glance
Part I: Getting Started
1 Introducing the Node.js-to-AngularJS Stack
2 JavaScript Primer
Part II: Learning Node.js
3 Getting Started with Node.js
4 Using Events, Listeners, Timers, and Callbacks in Node.js
5 Handling Data I/O in Node.js
6 Accessing the File System from Node.js
7 Implementing HTTP Services in Node.js
8 Implementing Socket Services in Node.js
9 Scaling Applications Using Multiple Processors in Node.js
10 Using Additional Node.js Modules
Part III: Learning MongoDB
11 Understanding NoSQL and MongoDB
12 Getting Started with MongoDB
13 Getting Started with MongoDB and Node.js
14 Manipulating MongoDB Documents from Node.js
15 Accessing MongoDB Documents from Node.js
16 Using Mongoose for Structured Schema and Validation
17 Advanced MongoDB Concepts
Part IV: Using Express to Make Life Easier
1
AngularJS Fundamental Concepts for Building Web Applications: Part 1
AngularJS Fundamental Concepts for Building Web Applications: Part 2
AngularJS Fundamental Concepts for Building Web Applications: Part 3
AngularJS Fundamental Concepts for Building Web Applications: Part 4
Working with File Paths in Node.js
Introducing the Node.js-to-AngularJS Stack
Download the sample pages (includes Chapter 1 and Index)
Introduction
Part I: Getting Started
1 Introducing the Node.js-to-AngularJS Stack
Understanding the Basic Web Development Framework ¿
Understanding the Node.js-to-AngularJS Stack Components¿
2 JavaScript Primer
Defining Variables
Understanding JavaScript Data Types
Using Operators
Implementing Looping
Creating Functions
Understanding Variable Scope
Using JavaScript Objects
Manipulating Strings
Working with Arrays
Adding Error Handling
Part II: Learning Node.js
3 Getting Started with Node.js
Understanding Node.js
Installing Node.js
Working with Node.js Packages
Creating a Node.js Application
Writing Data to the Console
4 Using Events, Listeners, Timers, and Callbacks in Node.js
Understanding the Node.js Event Model
Adding Work to the Event Queue
Implementing Callbacks
5 Handling Data I/O in Node.js
Working with JSON
Using the Buffer Module to Buffer Data
Using the Stream Module to Stream Data
Compressing and Decompressing Data with Zlib
6 Accessing the File System from Node.js
Synchronous Versus Asynchronous File System Calls
Opening and Closing Files
Writing Files
Reading Files
Other File System Tasks
7 Implementing HTTP Services in Node.js
Processing URLs
Processing Query Strings and Form Parameters
Understanding Request, Response, and Server Objects
Implementing HTTP Clients and Servers in Node.js
Implementing HTTPS Servers and Clients
8 Implementing Socket Services in Node.js
Understanding Network Sockets
Understanding TCP Server and Socket Objects
Implementing TCP Socket Servers and Clients
Implementing TLS Servers and Clients
9 Scaling Applications Using Multiple Processors in Node.js
Understanding the process Module
Implementing Child Processes
Implementing Process Clusters
10 Using Additional Node.js Modules
Using the os Module
Using the util Module
Part III: Learning MongoDB
11 Understanding NoSQL and MongoDB
Why NoSQL?
Understanding MongoDB
MongoDB Data Types
Planning Your Data Model
12 Getting Started with MongoDB
Building the MongoDB Environment
Administering User Accounts
Configuring Access Control
Administering Databases
Managing Collections
13 Getting Started with MongoDB and Node.js
Adding the MongoDB Driver to Node.js
Connecting to MongoDB from Node.js
Understanding the Objects Used in the MongoDB Node.js Driver
Accessing and Manipulating Databases
Accessing and Manipulating Collections
14 Manipulating MongoDB Documents from Node.js
Understanding Database Change Options
Understanding Database Update Operators
Adding Documents to a Collection
Getting Documents from a Collection
Updating Documents in a Collection
Atomically Modifying Documents in a Collection
Saving Documents in a Collection
Using upsert to Insert Documents in a Collection
Deleting Documents from a Collection
Removing a Single Document from a Collection
15 Accessing MongoDB Documents from Node.js
Introducing the Data Set
Understanding Query Objects
Understanding Query options Objects
Finding Specific Sets of Documents
Counting Documents
Limiting Result Sets
Sorting Result Sets
Finding Distinct Field Values
Grouping Results
Applying MapReduce by Aggregating Results
16 Using Mongoose for Structured Schema and Validation
Understanding Mongoose
Connecting to a MongoDB Database by Using Mongoose
Defining a Schema
Compiling a Model
Understanding the Query Object
Understanding the Document Object
Finding Documents by Using Mongoose
Adding Documents by Using Mongoose
Updating Documents by Using Mongoose
Removing Documents by Using Mongoose
Aggregating Documents by Using Mongoose
Using the Validation Framework
Implementing Middleware Functions
17 Advanced MongoDB Concepts
Adding Indexes
Using Capped Collections
Applying Replication
Implementing Sharding
Implementing a GridFS Store
Repairing a MongoDB Database
Backing Up MongoDB
Part IV: Using Express to Make Life Easier
18 Implementing Express in Node.js
Getting Started with Express
Configuring Routes
Using Request Objects
Using Response Objects
Implementing a Template Engine
19 Implementing Express Middleware
Understanding Middleware
Using the query Middleware
Serving Static Files
Handling POST Body Data
Sending and Receiving Cookies
Implementing Sessions
Applying Basic HTTP Authentication
Implementing Session Authentication
Creating Custom Middleware
Part V: Learning AngularJS
20 Getting Started with AngularJS
Why AngularJS?
Understanding AngularJS
An Overview of the AngularJS Life Cycle
Integrating AngularJS with Existing JavaScript and jQuery
Adding AngularJS to the Node.js Environment
Bootstrapping AngularJS in an HTML Document
Using the Global APIs
Creating a Basic AngularJS Application
21 Understanding AngularJS Modules and Dependency Injection
Overview of Modules and Dependency Injection
Defining AngularJS Modules
Implementing Dependency Injection
22 Implementing the Scope as a Data Model
Understanding Scopes
Implementing Scope Hierarchy
Emitting and Broadcasting Events
23 Using AngularJS Templates to Create Views
Understanding Templates
Using Expressions
Using Filters
Creating Custom Filters
24 Implementing Directives in AngularJS Views
Understanding Directives
Using Built-in Directives
Creating Your Own Directives to Extend HTML
25 Implementing AngularJS Services in Web Applications
Understanding AngularJS Services
Using the Built-in Services
Creating Custom Services
Part VI: Building Practical Web Application Components
26 Adding User Accounts to Your Website
Libraries Used
Project Directory Structure
Defining the User Model
Creating the Server
Implementing Routes
Implementing the User Controller Routes
Implementing the User and Authentication Views
Implementing the AngularJS Module and Controller
Using Social Media Accounts as Authentication Sources
27 Adding Comment Threads to Pages
Libraries Used
Project Directory Structure
Defining the Comment, Reply, Photo, and Page Models
Creating the Comments Server
Implementing Routes to Support Viewing and Adding Comments
Implementing the Model-Based Controller Routes
Implementing Photo and Comment Views
Implementing the AngularJS Module and Controller to Support Comment Views
Initializing the Application
28 Creating a Shopping Cart
Project Description
Libraries Used
Project Directory Structure
Defining the Customer, Product, and Orders Models
Creating the Shopping Cart Server
Implementing Routes to Support Product, Cart, and Order Requests
Implementing the Model-Based Controller Routes
Implementing Shopping Cart and Checkout Views
Implementing the AngularJS Module and Controller to Support Shopping Cart Views
Initializing the Application
29 Building Interactive Web 2.0 Application Components
Project Description
Libraries Used
Project Directory Structure
Defining the Project Model
Creating the Application Server
Implementing Routes to Support the Views
Implementing a Tabbed View
Implementing a Weather Service View
Implementing Draggable Elements
Implementing Dynamic Data Access
Initializing the Application