Special notice
Preface
- About
- Status
- Notes on code formatting
- Intended audience
- Part 1: Node.js basics in detail
Introduction to Part 1
Working with NPM and Packages
Test-Driven Node.js Development
Object-oriented JavaScript
- Blueprints versus finger-pointing
- A classless society
- Creating objects
- Object-orientation, prototyping, and inheritance
- A classless society, revisited
- Summary
Synchronous and Asynchronous operations explained
- Visualizing the Node.js execution model
- Blocking and non-blocking operations
Using and creating Event Emitters
- Introduction
- Creating your own Event Emitter object
- Summary
Optimizing code performance and control flow management using the async library
- Executing expensive asynchronous background tasks in parallel
- Optimizing code structure with async
Efficient real-time web applications with the WebSocket protocol
- Where WebSocket connections beat HTTP connections
- How WebSocket connections work
- How to use WebSocket connections in your web application
- Extending the application
Node.js and MySQL
- Using the “mysql” library
- A first database application
- Using the Streaming API
- Making SQL queries secure against attacks
- Summary
Node.js and MongoDB
- Some MongoDB basics
- Applying CRUD operations with the low-level mongodb driver
- Retrieving specific documents using filters
- More complex update operations
- Working with indexes
- Querying collections efficiently
- Summary
- Part 2: Building a complete web application with Node.js and AngularJS
Introduction
- The requirements from a user’s perspective
- High level architecture overview
- Setting up the development environment
Milestone 1: A first passing test against the server
Milestone 2: The API responds with actual database content
- Abstracting database access
- Ensuring a clean slate for test runs
- Completing the first spec
Milestone 3: Setting the stage for a continuous delivery workflow
- Introducing automatic database migrations
Milestone 4: Giving users a frontend
- Setting up frontend dependencies through bower
- Serving the frontend through the backend server
- Adding the frontend code
- Adding AngularJS view templates
Milestone 5: More work on the backend
- Adding a route for retrieving categories
- Making the backend recognize different environments
Milestone 6: Completing the backend and finalizing the application
- Creating the route for adding new keywords
- Creating the route for updating keywords
- Creating the route for deleting keywords
