Book Image

MEAN Web Development - Second Edition

By : Amos Q. Haviv
Book Image

MEAN Web Development - Second Edition

By: Amos Q. Haviv

Overview of this book

The MEAN stack is a collection of the most popular modern tools for web development that helps you build fast, robust, and maintainable web applications. Starting with the MEAN core frameworks, this pragmatic guide will explain the key concepts of each framework, how to set them up properly, and how to use popular modules to connect it all together. By following the real-world examples shown in this tutorial, you will scaffold your MEAN application architecture, add an authentication layer, and develop an MVC structure to support your project development. You will learn the best practices of maintaining clear and simple code and will see how to avoid common pitfalls. Finally, you will walk through the different tools and frameworks that will help expedite your daily development cycles. Watch how your application development grows by learning from the only guide that is solely orientated towards building a full, end-to-end, real-time application using the MEAN stack!
Table of Contents (18 chapters)
MEAN Web Development Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Index

A

  • ad hoc queries, MongoDB / MongoDB ad hoc queries
  • advanced querying
    • with find() method / Advanced querying using find()
  • AND/OR queries
    • building / Building AND/OR queries
  • Angular 2
    • about / Introducing Angular 2
    • architecture / Angular 2 Architecture
    • modules / Angular 2 Modules
    • components / Angular 2 Components
    • templates / Angular 2 Templates
    • data binding / Angular 2 data binding
    • directives / Angular 2 Directives
    • services / Angular 2 Services
    • Dependency Injection, using in / Using Dependency Injection in Angular 2
    • routing / Angular 2 Routing
  • Angular 2, new capabilities
    • syntax / From Angular 1.x to Angular 2.x
    • TypeScript / From Angular 1.x to Angular 2.x
    • modules / From Angular 1.x to Angular 2.x
    • controllers / From Angular 1.x to Angular 2.x
    • scopes / From Angular 1.x to Angular 2.x
    • decorators / From Angular 1.x to Angular 2.x
    • Dependency Injection / From Angular 1.x to Angular 2.x
  • Angular application
    • testing / Testing your Angular application
    • debugging, with Angular Augury / Debugging Angular applications with Angular Augury
    • component tree / The component tree
    • router tree / Router tree
  • Angular Augury
    • using / Using Angular Augury
  • Angular E2E tests
    • about / Angular E2E tests
    • running / Running your Angular E2E tests
  • AngularJS
    • about / Introducing Angular 2
  • Angular module
    • implementing / Implementing the Angular module
    • Create subcomponent, implementing / Implementing the Create subcomponent
    • View subcomponent, implementing / Implementing the View subcomponent
    • Edit subcomponent, implementing / Implementing the Edit subcomponent
    • List subcomponent, implementing / Implementing the List subcomponent
  • Angular module service
    • creating / Creating the Angular module service
  • Angular unit tests
    • about / Angular unit tests
    • writing / Writing Angular unit tests
    • components, testing / Testing components
    • backend data, mocking / Mocking backend data
    • services, testing / Testing services
    • routes, testing / Testing routes
    • directives, testing / Testing directives
    • pipes, testing / Testing pipes
    • running / Running your Angular unit tests
  • application
    • debugging / Debugging your application
  • application authentication
    • managing / Managing authentication
    • user object, rendering / Rendering the user object
    • users' server controller, modifying / Modifying the users' server controller
    • authentication module, creating / Creating the authentication module
    • home module, creating / Creating the home module
    • application module, refactoring / Refactoring the application module
  • application folder structure
    • about / The application folder structure
    • horizontal folder structure / Horizontal folder structure
    • vertical folder structure / Vertical folder structure
    • file-naming conventions / File-naming conventions
  • application module
    • refactoring / Refactoring the application module
    • application routes, configuring / Configuring the application routes
  • application object
    • about / The application, request, and response objects, The application object
    • methods / The application object
  • arrow functions
    • about / Arrow functions
  • ArticleSchema, model fields
    • created / Creating the Mongoose model
    • title / Creating the Mongoose model
    • content / Creating the Mongoose model
    • creator / Creating the Mongoose model
  • assertion libraries
    • about / Assertion libraries
  • Asynchronous JavaScript and XML (AJAX)
    • about / Introduction to Node.js
  • attribute directives
    • about / Attribute directives
    • ngClass / Attribute directives
    • ngStyle / Attribute directives
    • ngModel / Attribute directives
  • authentication
    • about / Introducing Passport
  • authentication middleware, Express controller
    • implementing / Implementing an authentication middleware
  • authentication module
    • creating / Creating the authentication module
    • authentication component, creating / Creating the authentication component
    • authentication routes, configuring / Configuring the authentication routes
    • signin component, creating / Creating the signin component
    • signup component, creating / Creating the signup component
    • authentication service, creating / Creating the authentication service
  • authorization middleware, Express controller
    • implementing / Implementing an authorization middleware

B

  • BDD interface, for Mocha tests
    • describe(description, callback) / Introducing Mocha
    • it(description, callback) / Introducing Mocha
    • before(callback) / Introducing Mocha
    • beforeEach(callback) / Introducing Mocha
    • after(callback) / Introducing Mocha
    • afterEach(callback) / Introducing Mocha
  • Behavior-Driven Development (BDD)
    • about / TDD, BDD, and unit testing
  • binaries
    • MongoDB, installing from / Installing MongoDB from binaries
  • body-parser middleware / External middleware
  • BSON format
    • about / The BSON format

C

  • Chat Angular module
    • creating / Creating the Chat Angular module, Creating the Chat module
    • chat service, creating / Creating the Chat service
    • chat component, creating / Creating the Chat component
    • chat template, creating / Creating the Chat template
    • chat routing configuration, adding / Adding the Chat routing configuration
    • using / Using the Chat module
  • Chrome web store
    • reference / Debugging Angular applications with Angular Augury
  • classes
    • about / Classes
  • closures, JavaScript / JavaScript Closures
  • Comet
    • about / Introducing WebSockets
  • CommonJS
    • modules / CommonJS modules
  • component directives
    • about / Component directives
  • components, Angular 2
    • about / Angular 2 Components
  • compression middleware / External middleware
  • configuration, Karma
    • reference / Configuring the Karma test runner
  • configuration options, npm
    • reference / Updating the package.json file
  • Connect-Flash module
    • installing / Installing the Connect-Flash module
    • configuring / Configuring Connect-Flash module
    • using / Using Connect-Flash module
  • connect-mongo module
    • installing / Installing the connect-mongo and cookie-parser modules
    • configuring / Configuring the connect-mongo module
  • Connect middleware
    • about / Connect middleware
    • req argument / Connect middleware
    • res argument / Connect middleware
    • next argument / Connect middleware
    • order / Understanding the order of Connect middleware
    • mounting / Mounting Connect middleware
  • Connect module
    • about / Meet the Connect module
  • Const keyword
    • about / Let and Const
  • Controller
    • about / Three-tier web application development
  • cookie-parser middleware / External middleware
  • cookie-parser module
    • installing / Installing the connect-mongo and cookie-parser modules
  • core modules, Node.js / Node.js core modules
  • create() method, Express controller / The create() method of the Express controller
  • Create subcomponent, Angular module
    • implementing / Implementing the Create subcomponent
    • template, adding / Adding the template
  • CRUD modules
    • about / Introducing CRUD modules
  • CRUD operations, MongoDB
    • about / MongoDB CRUD operations
    • new document, creating / Creating a new document
    • document, creating with insert() / Creating a document using insert()
    • document, creating with update() / Creating a document using update()
    • document, creating with save() / Creating a document using save()
    • documents, reading / Reading documents
    • collection documents, finding / Finding all the collection documents
    • equality statement, used for retrieving specific document / Using an equality statement
    • query operators, used for retrieving specific document / Using query operators
    • existing documents, updating / Updating existing documents
    • documents, updating with update() / Updating documents using update()
    • documents, updating with save() / Updating documents using save()
    • documents, deleting / Deleting documents
    • all documents, deleting / Deleting all documents
    • multiple documents, deleting / Deleting multiple documents
    • single document, deleting / Deleting a single document
  • custom getter modifiers
    • about / Custom getter modifiers
  • custom instance methods
    • defining / Defining custom instance methods
  • custom model methods
    • defining / Defining custom model methods
  • custom setter modifiers
    • about / Custom setter modifiers
  • custom static methods
    • defining / Defining custom static methods
  • custom validators
    • about / Custom validators

D

  • data binding, Angular 2
    • about / Angular 2 data binding
    • interpolation binding / Interpolation binding
    • property binding / Property binding
    • event binding / Event binding
    • two-way binding / Two-way binding
  • DBRef / Using Mongoose ref fields
  • decorators
    • about / From Angular 1.x to Angular 2.x, Decorators
  • default feature
    • about / Default, Rest, and Spread
  • delete() method, Express controller / The delete() method of the Express controller
  • dependencies
    • managing, package.json file used / Managing dependencies using the package.json file
  • Dependency Injection
    • about / From Angular 1.x to Angular 2.x, Angular 2 Dependency Injection
    • using, in Angular 2 / Using Dependency Injection in Angular 2
  • directives, Angular 2
    • about / Angular 2 Directives
    • attribute directives / Attribute directives
    • structural directives / Structural directives
    • component directives / Component directives

E

  • E2E test
    • writing / Writing your first E2E test
  • ECMAScript 2015
    • about / Introduction to ECMAScript 2015
  • Edit subcomponent, Angular module
    • implementing / Implementing the Edit subcomponent
    • template, adding / Adding the template
  • EJS template engine / Creating the authentication views
  • EJS views
    • rendering / Rendering EJS views
  • end-to-end(E2E) tests
    • about / Introducing JavaScript testing
  • environment configuration files
    • about / Environment configuration files
  • error handling method, Express controller / The error handling method of the Express controller
  • ESLint
    • about / Introducing ESLint
    • reference / Introducing ESLint
    • installing / Installing ESLint
    • configuring / Configuring ESLint
  • event-driven programming, JavaScript / JavaScript event-driven programming
  • event-driven programming, Node.js / Node.js event-driven programming
  • event binding / Event binding
  • existing user document
    • updating / Updating an existing user document
    • deleting / Deleting an existing user document
  • Express
    • about / Introducing Express
    • installing / Installing Express
    • debugging, with V8 inspector / Debugging Express with V8 inspector
  • express.static middleware / External middleware
  • Express application
    • creating / Creating your first Express application
    • configuring / Configuring an Express application, Configuring the Express application
    • testing / Testing your Express application
  • Express components
    • setting up / Setting up the Express components
  • Express controller
    • setting up / Setting up the Express controller
    • error handling method / The error handling method of the Express controller
    • create() method / The create() method of the Express controller
    • list() method / The list() method of the Express controller
    • read() method / The read() middleware of the Express controller
    • update() method / The update() method of the Express controller
    • delete() method / The delete() method of the Express controller
    • authentication middleware, implementing / Implementing an authentication middleware
    • authorization middleware, implementing / Implementing an authorization middleware
    • testing / Testing the Express controller
  • Express middleware
    • about / External middleware
    • morgan / External middleware
    • body-parser / External middleware
    • method-override / External middleware
    • compression / External middleware
    • express.static / External middleware
    • cookie-parser / External middleware
    • Session / External middleware
  • Express model
    • testing / Testing the Express model
  • Express routes
    • wiring / Wiring the Express routes
  • Express web framework
    • about / Introducing Express

F

  • Facebook's developers' home page
    • reference / Configuring Passport's Facebook strategy
  • file modules, Node.js / Node.js file modules
  • find() method
    • used, for finding multiple user documents / Finding multiple user documents using find()
    • using, for advanced querying / Advanced querying using find()
  • findOne() method
    • used, for reading single user document / Reading a single user document using findOne()
  • First-In-First-Out (FIFO) order / Understanding the order of Connect middleware
  • folder modules, Node.js / Node.js folder modules

G

  • global objects, Protractor
    • browser / Introducing the Protractor test runner
    • element / Introducing the Protractor test runner
    • by / Introducing the Protractor test runner
    • protractor / Introducing the Protractor test runner

H

  • home module
    • creating / Creating the home module
    • home component, creating / Creating the home component
    • home routes, configuring / Configuring the home routes
  • horizontal folder structure
    • about / Horizontal folder structure
    • implementing / Implementing the horizontal folder structure
    • request routing, handling / Handling request routing
    • routing file, adding / Adding the routing file
  • http client
    • using / Using the http client
  • HTTP client
    • using / Using the HTTP client
  • HTTP handshake / Introducing WebSockets

I

  • indexes
    • used, for optimizing queries / Optimizing queries using indexes
  • indexing, MongoDB / MongoDB indexing
  • installing
    • Express / Installing Express
    • Mongoose / Installing Mongoose
  • interfaces
    • about / Interfaces
  • interpolation binding
    • about / Interpolation binding
  • io.js
    • foundation / io.js and the Node.js foundation

J

  • Jasmine
    • about / Introducing the Jasmine framework
    • reference / Introducing the Jasmine framework
  • JavaScript
    • evolution / The evolution of JavaScript
    • event-driven programming / JavaScript event-driven programming
    • closures / JavaScript Closures
  • JavaScript testing
    • about / Introducing JavaScript testing

K

  • Karma's dependencies
    • installing / Installing Karma's dependencies
  • Karma command-line tool
    • installing / Installing the Karma command-line tool
  • Karma test runner
    • about / Introducing Karma test runner
    • configuring / Configuring the Karma test runner
  • key components for modules, CommonJS
    • require() / CommonJS modules
    • exports / CommonJS modules
    • module / CommonJS modules
  • key features, MongoDB
    • about / Key features of MongoDB
    • BSON format / The BSON format
    • ad hoc queries / MongoDB ad hoc queries
    • indexing / MongoDB indexing
    • replica set / MongoDB replica set
    • sharding / MongoDB sharding

L

  • Let keyword
    • about / Let and Const
  • Linux
    • MongoDB, installing on / Installing MongoDB on Mac OS X and Linux
    • Node.js, installing on / Installing Node.js on Linux
  • list() method, Express controller / The list() method of the Express controller
  • List subcomponent, Angular module
    • implementing / Implementing the List subcomponent
    • template, adding / Adding the template
  • Long-term Support (LTS) policy
    • about / Installing Node.js
    • reference / Installing Node.js

M

  • Mac OS X
    • MongoDB, installing on / Installing MongoDB on Mac OS X and Linux
    • Node.js, installing on / Installing Node.js on Mac OS X
  • matchers / Introducing the Jasmine framework
  • MEAN
    • about / Introducing MEAN
    • advantages / Introducing MEAN
  • method-override middleware / External middleware
  • methods, application object
    • app.set(name, value) / The application object
    • app.get(name) / The application object
    • app.engine(ext, callback) / The application object
    • app.locals / The application object
    • app.use([path], callback) / The application object
    • app.VERB(path, [callback...], callback) / The application object
    • app.route(path).VERB([callback...], callback) / The application object
    • app.param([name], callback) / The application object
  • methods, response object
    • res.status(code) / The response object
    • res.set(field, [value]) / The response object
    • res.cookie(name, value, [options]) / The response object
    • res.redirect([status], url) / The response object
    • res.status([status]).send( [body]) / The response object
    • res.status([status]).json( [body]) / The response object
    • res.render(view, [locals], callback) / The response object
  • Mocha
    • about / Introducing Mocha
    • reference / Introducing Mocha
    • installing / Installing Mocha
  • Mocha test
    • writing / Writing your first Mocha test
    • running / Running your Mocha test
  • Model
    • about / Three-tier web application development
  • Model-View-Controller (MVC)
    • about / Three-tier web application development
  • model validation
    • about / Model validation
  • modifiers
    • predefined modifiers / Predefined modifiers
    • custom setter modifiers / Custom setter modifiers
    • custom getter modifiers / Custom getter modifiers
    • reference / Custom getter modifiers
  • modules
    • about / Modules
  • modules, Angular 2
    • about / Angular 2 Modules
  • modules, CommonJS / CommonJS modules
  • modules, Node
    • about / Node modules
  • MongoDB
    • installing / Installing MongoDB
    • URL, for download page / Installing MongoDB
    • URL, for official documentation / Installing MongoDB
    • installing, on Windows / Installing MongoDB on Windows
    • running, manually / Running MongoDB manually
    • running, as Windows service / Running MongoDB as a Windows service
    • URL, for configuration options / Running MongoDB as a Windows service
    • installing, on Mac OS X / Installing MongoDB on Mac OS X and Linux
    • installing, on Linux / Installing MongoDB on Mac OS X and Linux
    • installing, from binaries / Installing MongoDB from binaries
    • installing, package manager used / Installing MongoDB using a package manager
    • references, for installation on different operating systems / Installing MongoDB using a package manager
    • about / Introducing MongoDB
    • key features / Key features of MongoDB
    • CRUD operations / MongoDB CRUD operations
    • connecting to / Connecting to MongoDB
  • MongoDB 3.0
    • about / MongoDB 3.0
    • features / MongoDB 3.0
  • MongoDB collections
    • about / MongoDB collections
  • MongoDB databases
    • about / MongoDB databases
  • MongoDB shell
    • using / Using the MongoDB shell
    • about / MongoDB shell
  • Mongoose
    • about / Introducing Mongoose
    • installing / Installing Mongoose
    • User model, creating / Creating the user schema and model
    • User model, registering / Registering the User model
  • Mongoose middleware
    • using / Using Mongoose middleware
    • pre middleware / Using pre middleware
    • post middleware / Using post middleware
    • reference / Using post middleware
  • Mongoose model
    • creating / Creating the Mongoose model
  • Mongoose ref fields
    • using / Using Mongoose ref fields
  • Mongoose schemas
    • about / Understanding Mongoose schemas
    • user schema, creating / Creating the user schema and model
    • extending / Extending your Mongoose schema
    • default values, defining / Defining default values
    • virtual attributes, adding / Adding virtual attributes
  • morgan middleware / External middleware
  • multiple user documents
    • finding, find() method used / Finding multiple user documents using find()
  • MVC pattern
    • implementing / Implementing the MVC pattern

N

  • Node
    • modules / Node modules
  • Node.js
    • installing / Installing Node.js
    • installing, on Windows / Installing Node.js on Windows
    • URL, for download page / Installing Node.js on Windows
    • installing, on Mac OS X / Installing Node.js on Mac OS X
    • installing, on Linux / Installing Node.js on Linux
    • URL, for official documentation / Installing Node.js on Linux
    • running / Running Node.js
    • about / Introduction to Node.js
    • foundation / io.js and the Node.js foundation
    • long-term support / Node.js LTS support
    • event-driven programming / Node.js event-driven programming
    • core modules / Node.js core modules
    • third-party modules / Node.js third-party modules
    • file modules / Node.js file modules
    • folder modules / Node.js folder modules
    • web applications, developing / Developing Node.js web applications
  • Node.js ES6 features, classifications
    • shipping / Node.js ES6 support
    • staged / Node.js ES6 support
    • in progress / Node.js ES6 support
  • Nodemon
    • using / Using Nodemon
  • NoSQL
    • about / Introduction to NoSQL
  • npm
    • about / Introducing npm
    • uses / Introducing npm
    • using / Using npm
    • URL, for official website / Using npm
    • URL, for official documentation / Using npm
    • installation process / The installation process of npm
    • used, for installing package / Installing a package using npm
    • URL, for semantic versioning syntax / Installing a package using npm
    • used, for removing package / Removing a package using npm
    • used, for updating package / Updating a package using npm
  • NPM scripts
    • using / Using NPM scripts

O

  • OAuth
    • reference / Understanding Passport OAuth strategies
  • OAuth providers, Passport
    • reference / Wiring Passport's Google strategy routes
  • Observables
    • and reactive programming / Reactive programming and Observables
  • official repository, Connect module
    • reference / External middleware
  • options object, Passport
    • successRedirect / Wiring the user's routes
    • failureRedirect / Wiring the user's routes
    • failureFlash / Wiring the user's routes

P

  • package
    • installing, npm used / Installing a package using npm
    • removing, npm used / Removing a package using npm
    • updating, npm used / Updating a package using npm
  • package.json dependencies
    • installing / Installing the package.json dependencies
  • package.json file
    • used, for managing dependencies / Managing dependencies using the package.json file
    • creating / Creating a package.json file
    • updating / Updating the package.json file
  • package.json file, supportive libraries
    • CoreJS / The project setup
    • ReflectMetadata / The project setup
    • Rx.JS / The project setup
    • SystemJS / The project setup
    • Zone.js / The project setup
    • Concurrently / The project setup
    • Typings / The project setup
  • package manager
    • used, for installing MongoDB / Installing MongoDB using a package manager
  • Passport
    • about / Introducing Passport
    • installing / Installing Passport
    • configuring / Configuring Passport
  • Passport's Facebook strategy
    • using / Using Passport's Facebook strategy
    • installing / Installing Passport's Facebook strategy
    • configuring / Configuring Passport's Facebook strategy
    • routes, wiring / Wiring Passport's Facebook strategy routes
  • Passport's Google strategy
    • using / Using Passport's Google strategy
    • installing / Installing Passport's Google strategy
    • configuring / Configuring Passport's Google strategy
    • routes, wiring / Wiring Passport's Google strategy routes
  • Passport's local strategy module
    • installing / Installing Passport's local strategy module
    • configuring / Configuring Passport's local strategy
  • Passport's Twitter strategy
    • using / Using Passport's Twitter strategy
    • installing / Installing Passport's Twitter strategy
    • configuring / Configuring Passport's Twitter strategy
    • routes, wiring / Wiring Passport's Twitter strategy routes
  • Passport OAuth strategies
    • about / Understanding Passport OAuth strategies
    • setting up / Setting up OAuth strategies
    • user creation, handling / Handling OAuth user creation
  • Passport strategies
    • about / Understanding Passport strategies
    • local strategy / Using Passport's local strategy
    • User model, adapting / Adapting the User model
    • authentication views, creating / Creating the authentication views
    • Users controller, modifying / Modifying the Users controller
  • PhantomJS
    • about / Introducing Karma test runner
  • post middleware, Mongoose
    • using / Using post middleware
  • predefined modifiers
    • about / Predefined modifiers
  • predefined validators
    • about / Predefined validators
    • reference / Predefined validators
  • pre middleware, Mongoose
    • using / Using pre middleware
  • project setup
    • about / The project setup
    • TypeScript, configuring / Configuring TypeScript
    • Express, configuring / Configuring Express
    • application, restructuring / Restructuring the application
    • application module, creating / Creating the application module
    • application component, creating / Creating the application component
    • application module, bootstrapping / Bootstrapping the application module
    • Angular application, starting / Starting your Angular application
  • properties, request object
    • req.query / The request object
    • req.params / The request object
    • req.body / The request object
    • req.path / req.hostname / req.ip / The request object
    • req.cookies / The request object
  • property binding / Property binding
  • Protractor
    • about / Introducing the Protractor test runner
    • reference / Introducing the Protractor test runner
  • Protractor test runner
    • about / Introducing the Protractor test runner
    • installing / Installing the Protractor test runner
    • configuring / Configuring the Protractor test runner

Q

  • queries
    • optimizing, indexes used / Optimizing queries using indexes
  • query operators
    • reference / Using query operators
  • query options, Mongoose
    • reference / Advanced querying using find()

R

  • reactive programming
    • and Observables / Reactive programming and Observables
  • ReactiveX library / The ReactiveX library
  • read() method, Express controller / The read() middleware of the Express controller
  • reference fields and population, Mongoose
    • reference / Using Mongoose ref fields
  • replica set, MongoDB / MongoDB replica set
    • reference / MongoDB replica set
  • replication
    • about / MongoDB replica set
  • request object
    • about / The application, request, and response objects, The request object
    • properties / The request object
  • response object
    • about / The application, request, and response objects, The response object
    • methods / The response object
  • Rest feature
    • about / Default, Rest, and Spread
  • routing, Angular 2
    • about / Angular 2 Routing
    • setup / Setup
    • routes / Routes
    • router outlet / Router outlet
    • router links / Router links

S

  • save() method
    • used, for creating users / Creating new users using save()
  • schema modifiers
    • using / Using schema modifiers
  • services, Angular 2
    • about / Angular 2 Services
  • Session middleware / External middleware
  • sessions
    • configuring / Configuring sessions
  • sharding, MongoDB / MongoDB sharding
    • reference / MongoDB sharding
  • Should.js
    • about / Introducing Should.js
    • reference / Introducing Should.js
    • installing / Installing the Should.js and SuperTest modules
  • single user document
    • reading, findOne() method used / Reading a single user document using findOne()
  • Socket.io
    • about / Introducing Socket.io
    • reference / Emitting events to rooms
    • installing / Installing Socket.io
  • Socket.io chat
    • building / Building a Socket.io chat
    • event handlers, setting of chat server / Setting the event handlers of the chat server
  • Socket.io client library
    • setting up / Setting up the Socket.io client library
  • Socket.io client object
    • about / The Socket.io client object
  • Socket.io configuration middleware
    • about / The Socket.io configuration middleware
  • Socket.io events
    • about / Socket.io events
    • system events, on socket server / Socket.io events
    • system events, on client / Socket.io events
    • handling / Handling events
    • emitting / Emitting events
  • Socket.io handshaking
    • about / Socket.io handshaking
  • Socket.io namespaces
    • about / Socket.io namespaces
    • server namespaces / Socket.io server namespaces
    • client namespaces / Socket.io client namespaces
  • Socket.io rooms
    • about / Socket.io rooms
    • rooms, joining / Joining and leaving rooms
    • rooms, leaving / Joining and leaving rooms
    • events, emitting to rooms / Emitting events to rooms
  • Socket.io server
    • configuring / Configuring the Socket.io server
  • Socket.io server object
    • about / The Socket.io server object
  • Socket.io session
    • configuring / Configuring the Socket.io session, Configuring the Socket.io session
  • Spread feature
    • about / Default, Rest, and Spread
  • static files
    • serving / Serving static files
  • strategies
    • about / Introducing Passport
  • structural directives
    • about / Structural directives
    • ngIf / Structural directives
    • ngFor / Structural directives
    • ngSwitch / Structural directives
  • SuperTest
    • about / Introducing SuperTest
    • reference / Introducing SuperTest
    • installing / Installing the Should.js and SuperTest modules
  • SystemJS
    • reference / Starting your Angular application

T

  • templates, Angular 2
    • about / Angular 2 Templates
  • Test-driven development (TDD)
    • about / TDD, BDD, and unit testing
  • Test-driven Development (TDD) / The evolution of JavaScript
  • test environment
    • configuring / Configuring your test environment
  • test execution settings, Karma
    • basePath / Configuring the Karma test runner
    • frameworks / Configuring the Karma test runner
    • files / Configuring the Karma test runner
    • reporters / Configuring the Karma test runner
    • browsers / Configuring the Karma test runner
    • captureTimeout / Configuring the Karma test runner
    • singleRun / Configuring the Karma test runner
  • test frameworks
    • about / Test frameworks
  • test runners
    • about / Test runners
  • third-party middleware collection
    • reference / External middleware
  • third-party modules, Node.js / Node.js third-party modules
  • three-tier web application development
    • about / Three-tier web application development
  • two-way binding / Two-way binding
  • types
    • about / Types
    • basic types / Basic types
    • any type / The any type
  • TypeScript
    • about / From Angular 1.x to Angular 2.x, Introduction to TypeScript
  • Typings
    • reference / Configuring TypeScript

U

  • unit tests
    • about / Introducing JavaScript testing
  • update() method, Express controller / The update() method of the Express controller
  • users
    • creating, save() method used / Creating new users using save()
  • Users controller, Passport strategies
    • modifying / Modifying the Users controller
    • flash error messages, displaying / Displaying flash error messages
    • user's routes, wiring / Wiring the user's routes

V

  • V8 inspector
    • used, for debugging Express / Debugging Express with V8 inspector
  • validation function
    • about / Custom validators
  • vertical folder structure
    • about / Vertical folder structure
  • View
    • about / Three-tier web application development
  • views
    • rendering / Rendering views
    • EJS views, rendering / Rendering EJS views
  • View subcomponent, Angular module
    • implementing / Implementing the View subcomponent
    • template, adding / Adding the template
  • view system
    • configuring / Configuring the view system

W

  • web applications, Node.js
    • developing / Developing Node.js web applications
  • WebDriver
    • reference / Installing the Protractor test runner
  • Webpack
    • about / Introducing Webpack
    • reference / Introducing Webpack
    • installing / Installing Webpack
    • configuring / Configuring Webpack
  • WebSockets
    • about / Introducing WebSockets
  • Windows
    • MongoDB, installing on / Installing MongoDB on Windows
    • Node.js, installing on / Installing Node.js on Windows
  • Windows service
    • MongoDB, running as / Running MongoDB as a Windows service

X

  • XMLHttpRequest (XHR) polling
    • about / Introducing WebSockets