Index
A
- absolute module identifiers
- algorithm
- used, for resolving module / Node.js's algorithm for require (module)
- module identifiers / Module identifiers and path names
- path names / Module identifiers and path names
- application directory structure, example / An example application directory structure
- application directory structure
- assert module
- used, for testing / Assert – the simplest testing methodology
- asynchronous code
- about / Data storage and asynchronous code
- testing / Testing asynchronous code
- Authnet
- implementing / Putting Authnet together
- AuthNet
- creating, for User Authentication service / Creating the AuthNet for the User Authentication service
B
- *BSD
- Node.js, installing / Installing on Linux, *BSD, or Windows from package management systems
- Babel
- URL / Using Babel to use experimental JavaScript features
- used, for rewriting JavaScript code / Using Babel to use experimental JavaScript features
- URL, for setup / Using Babel to use experimental JavaScript features
- body-parser module
- boot2docker
- Bootstrap
- adding, to application templates / Adding Bootstrap to application templates
- URL / Adding Bootstrap to application templates
- grid foundation, laying / Laying the Bootstrap grid foundation
- Bootstrap Jumbotron component / View template changes supporting login/logout
- Bower
- using / Setting it up
- URL / Setting it up
- Breadcrumb component
- using / Breadcrumbs for the page header
- breakpoint / Mobile-first paradigm
C
- callback hell
- CasperJS
- used, for testing frontend headless browser / Frontend headless browser testing with CasperJS
- setting up / Setup
- testability, improving / Improving testability in Notes UI
- test script, writing / CasperJS test script for Notes
- UI test, executing / Running the UI test with CasperJS
- Chai
- used, for testing / Mocha and Chai the chosen test tools
- URL / Notes model test suite
- Chrome Developer Tools / Problem – the Notes app isn't mobile friendly
- Collection object
- command-line tools
- running / Running and testing commands
- testing / Running and testing commands
- about / Node.js's command-line tools
- script, executing / Running a simple script with Node.js
- server, launching / Launching a server with Node.js
- CommonJS
- about / A quick note about CommonJS
- URL / A quick note about CommonJS
- cookie-parser module
- CRUD model / Express and the MVC paradigm
- CSS-Tricks blog
- URL / Mobile-first paradigm
- Cursor object
- customized Bootstrap
- building / Building a customized Bootstrap
- references / Bootstrap customizers
- Cyborg theme, using / Bootstrap customizers
- Cyborg theme
- using / Bootstrap customizers
D
- data models
- testing / Testing a model, Testing database models
- testing, with Mocha / Mocha and Chai the chosen test tools
- testing, with Chai / Mocha and Chai the chosen test tools
- test suite / Notes model test suite
- tests, configuring / Configuring and running tests
- tests, executing / Configuring and running tests
- tests, adding / More tests for the Notes model
- data storage
- Debug package
- default Express application
- developer tools
- installing, on Mac OS X / Installing developer tools on Mac OS X
- installing, from source for all POSIX-like systems / Installing from source for all POSIX-like systems
- development instances, installing with nvm / Installing development instances with nvm
- Digital Ocean
- directories
- as modules / Directories as modules
- div elements
- Docker
- URL / Node.js microservice deployment with Docker, Installing Docker on your laptop
- about / Node.js microservice deployment with Docker
- installing / Installing Docker on your laptop
- starting, for Windows/Mac / Starting Docker with Docker for Windows/Mac
- containers, creating / Kicking the tires of Docker
- remote access, configuring / Configuring remote access on Docker for Windows or Mac
- used, for managing test database servers / Using Docker to manage test database servers
- package.json scripts, adding for Dockerized test infrastructure / Package.json scripts for Dockerized test infrastructure
-
Docker
- for microservice deployment / Node.js microservice deployment with Docker
- Docker Compose
- about / Node.js microservice deployment with Docker
- cloud, deploying / Deploying to the cloud with Docker compose
- URL / Deploying to the cloud with Docker compose
- compose files / Docker compose files
- Notes application, executing / Running the Notes application with Docker Compose
- cloud hosting, deploying / Deploying to cloud hosting with Docker Compose
- used, for orchestrating test infrastructure / Docker Compose to orchestrate test infrastructure
- tests, executing / Executing tests under Docker Compose
- Docker Engine
- Dockerfile
- Docker Machine
- about / Node.js microservice deployment with Docker
- used, for starting Docker / Starting Docker using Docker Toolbox and Docker Machine
- Docker Toolbox
- used, for starting Docker / Starting Docker using Docker Toolbox and Docker Machine
- VirtualBoxMachine, exploring / Exploring the Docker Toolbox VirtualBoxMachine
- Droplet / Deploying to cloud hosting with Docker Compose
E
- ECMAScript 6
- EJS template engine
- ES-2015 multiline
- ES-2015 Promises
- about / ES-2015 Promises and Express router functions
- error handling / Promises and error handling
- asynchronous code, writing / Flattening our asynchronous code
- tools, using / Additional tools
- references / Additional tools
- EventEmitters
- events, receiving / Sending and receiving events with EventEmitters
- events, sending / Sending and receiving events with EventEmitters
- theory / The EventEmitter theory
- Express
- about / Getting started with Express
- URL / Getting started with Express
- installing / Getting started with Express
- API documentation, URL / Walking through the default Express application
- middleware function / The Express middleware
- error handling / Error handling
- router functions / ES-2015 Promises and Express router functions
- MVC model / Express and the MVC paradigm
- Socket.IO, initializing with / Initializing Socket.IO with Express
- Express application
- Fibonacci sequence, calculating with / Calculating the Fibonacci sequence with an Express application
- REST backend service, calling / Calling a REST backend service from an Express application
- REST server, implementing / Implementing a simple REST server with Express
- Fibonacci application, refactoring / Refactoring the Fibonacci application for REST
- theming / Theming your Express application
F
- Fibonacci application
- refactoring / Refactoring the Fibonacci application for REST
- Fibonacci sequence
- calculating, with Express application / Calculating the Fibonacci sequence with an Express application
- Node.js event loop / Computationally intensive code and the Node.js event loop
- computationally intensive code, executing / Computationally intensive code and the Node.js event loop
- algorithmic refactoring / Algorithmic refactoring
- HTTP Client requests, creating / Making HTTP Client requests
- file-stream-rotator
- file module
- about / File modules
- module-level encapsulation, demonstrating / Demonstrating module-level encapsulation
- filesystem
- notes, storing / Storing notes in the filesystem
- FrontNet
- creating / Creating FrontNet for the Notes application
- MySQL, using / MySQL for the Notes application
- dockerizing / Dockerizing the Notes application
- implementing / Putting FrontNet together
- Dockerized Notes app, accessing / Putting FrontNet together
- remote access, configuring / Configuring remote access on Docker for Windows or Mac
- remote access, configuring in VirtualBox / Configuring remote access in VirtualBox on Docker toolbox
- Docker Toolbox VirtualBoxMachine, exploring / Exploring the Docker Toolbox VirtualBoxMachine
- location of MySQL data volumes, controlling / Controlling the location of MySQL data volumes
- fs module
G
- Google's Hosted Libraries
H
- Hexy
- Homebrew
- Node.js, installing with / Installing on Mac OS X with Homebrew
- URL / Installing on Mac OS X with Homebrew
- HTTP server applications
- about / HTTP server applications
- HTTP Sniffer
- HTTP conversation, listening / HTTP Sniffer – listening to the HTTP conversation
I
- inter-user chat
- implementing / Inter-user chat and commenting for Notes
- data model, implementing for storing messages / Data model for storing messages
- messages, adding to Notes router / Adding messages to the Notes router
- note view template, modifying for messages / Changing the note view template for messages
- Modal window, using to compose messages / Using a Modal window to compose messages
- messages, sending / Sending, displaying, and deleting messages
- messages, displaying / Sending, displaying, and deleting messages
- messages, deleting / Sending, displaying, and deleting messages
- messages, passing / Running Notes and passing messages
J
- jQuery
K
- Kitematic GUI
- about / Installing Docker on your laptop
L
- LevelUP data store
- notes, storing with / Storing notes with the LevelUP data store
- Linux
- Node.js, installing / Installing on Linux, *BSD, or Windows from package management systems
- Linux Node.js service deployment
- demonstrating / Traditional Linux Node.js service deployment
- prerequisite / Prerequisite – provisioning the databases
- User Authentication, setting up on server / Setting up Notes and User Authentication on the server
- Notes application, setting up / Setting up Notes and User Authentication on the server
- PM2, setting up / Setting up PM2 to manage Node.js processes
- logbook module
- URL / Capturing stdout and stderr
- about / Capturing stdout and stderr
- logging
- implementing / Logging
- request logging, with Morgan / Request logging with Morgan
- messages, debugging / Debugging messages
- stdout, capturing / Capturing stdout and stderr
- stderr, capturing / Capturing stdout and stderr
- uncaught exceptions, handling / Uncaught exceptions
- login support, for Notes application
- implementing / Login support for the Notes application
- user authentication REST API, accessing / Accessing the user authentication REST API
- logout routing function / Login and logout routing functions
- login routing function / Login and logout routing functions
- login/logout, modifying to app.js / Login/logout changes to app.js
- login/logout, modifying in routes/index.js / Login/logout changes in routes/index.js
- login/logout, modifying in routes/notes.js / Login/logout changes required in routes/notes.js
- template changes, viewing / View template changes supporting login/logout
- Notes application, executing / Running the Notes application with user authentication
- Long Term Support (LTS)
- Loopback
- LSB-style init script
M
- Mac OS X
- Node.js, installing with MacPorts / Installing on Mac OS X with MacPorts
- Node.js, installing with Homebrew / Installing on Mac OS X with Homebrew
- developer tools, installing / Installing developer tools on Mac OS X
- MacPorts
- URL / Installing on Mac OS X with MacPorts
- Node.js, installing with / Installing on Mac OS X with MacPorts
- MariaDB
- middleware function
- about / The Express middleware
- URL / The Express middleware
- request paths / Middleware and request paths
- mobile-first design, for Notes application
- building / Mobile-first design for the Notes application
- Bootstrap grid foundation, laying / Laying the Bootstrap grid foundation
- notes list, improving / Improving the notes list on the front page
- Breadcrumb component, using / Breadcrumbs for the page header
- add/edit note form, cleaning up / Cleaning up the add/edit note form
- mobile-first paradigm
- about / Mobile-first paradigm
- Mocha
- used, for testing / Mocha and Chai the chosen test tools
- URL / Mocha and Chai the chosen test tools
- Modal windows
- module
- defining / Defining a module
- format / Node.js module format
- file module / File modules
- directories / Directories as modules
- resolving, with algorithm / Node.js's algorithm for require (module)
- module-level encapsulation
- demonstrating / Demonstrating module-level encapsulation
- module identifiers
- about / Module identifiers and path names
- relative module identifiers / Module identifiers and path names
- absolute module identifiers / Module identifiers and path names
- top-level module identifiers / Module identifiers and path names
- MongoDB
- notes, storing / Storing notes in MongoDB
- URL / Storing notes in MongoDB
- model, creating / MongoDB model for the Notes application
- Notes application, executing / Running the Notes application with MongoDB
- Mongolab
- URL / Storing notes in MongoDB
- Mongoose
- URL / Storing notes in MongoDB
- Morgan
- used, for request logging / Request logging with Morgan
- Morgan request logger
- MySQL
- URL / Storing notes the ORM way with Sequelize, Running the Notes application with Sequelize
- for User Authentication service / MySQL for the Authentication service
N
- namespace
- native code module
- about / Native code modules and node-gyp
- node-gyp
- Node.js
- capabilities / The capabilities of Node.js
- server-side JavaScript / Server-side JavaScript
- URL / Performance and utilization, Launching a server with Node.js, Installing Node.js on Ubuntu
- URL, for case study / Performance and utilization
- system requisites / System requirements
- URL, for installation / Installing from source on POSIX-like systems
- URL, for downloading / Installing from source for all POSIX-like systems
- and ECMAScript 6 / Node.js and ECMAScript 6 (ES-2015, ES-2016, and so on)
- installing, on Ubuntu / Installing Node.js on Ubuntu
- Node.js, advantages
- about / Why should you use Node.js?
- popularity / Popularity
- JavaScript support / JavaScript at all levels of the stack
- V8, surpassing / Leveraging Google's investment in V8
- asynchronous event-driven model / Leaner asynchronous event-driven model
- microservice architecture / Microservice architecture, Node.js, the microservice architecture, and easily testable systems
- hostile fork / The Node.js is stronger for having survived a major schism and hostile fork
- asynchronous event-driven I/O / The Node.js is stronger for having survived a major schism and hostile fork
- utilization / Performance and utilization
- performance / Performance and utilization
- event handling / Is Node.js a cancerous scalability disaster?
- server utilization / Server utilization, the bottom line, and green web hosting
- web hosting / Server utilization, the bottom line, and green web hosting
- testable systems / Node.js, the microservice architecture, and easily testable systems
- Twelve-Factor app model / Node.js and the Twelve-Factor app model
- Node.js installation
- package managers, using / Installing Node.js using package managers
- on Mac OS X, with MacPorts / Installing on Mac OS X with MacPorts
- on Mac OS X, with Homebrew / Installing on Mac OS X with Homebrew
- on Linux / Installing on Linux, *BSD, or Windows from package management systems
- on *BSD / Installing on Linux, *BSD, or Windows from package management systems
- on Windows / Installing on Linux, *BSD, or Windows from package management systems
- from nodejs.org / Installing the Node.js distribution from nodejs.org
- from source, on POSIX-like systems / Installing from source on POSIX-like systems
- prerequisites / Installing prerequisites
- Node.js module
- nodejs.org
- Node.js distribution, installing / Installing the Node.js distribution from nodejs.org
- URL / Installing the Node.js distribution from nodejs.org
- notes
- storing, in filesystem / Storing notes in the filesystem
- storing, with LevelUP data store / Storing notes with the LevelUP data store
- storing, with SQLite3 / Storing notes in SQL with SQLite3
- storing, with Sequelize module / Storing notes the ORM way with Sequelize
- storing, in MongoDB / Storing notes in MongoDB
- Notes application
- creating / Creating the Notes application
- Notes model, creating / Your first Notes model
- home page, creating / The Notes home page
- note, adding / Adding a new note – create
- notes, Viewing / Viewing notes – read
- existing note, editing / Editing an existing note – update
- notes, deleting / Deleting notes – destroy
- multiple Notes instances, executing / Scaling up – running multiple Notes instances
- problem, quantifying / Problem – the Notes app isn't mobile friendly
- Twitter Bootstrap, using / Using Twitter Bootstrap on the Notes application
- Bootstrap, adding to application templates / Adding Bootstrap to application templates
- executing, with SQLite3 / Running Notes with SQLite3
- executing, with Sequelize module / Running the Notes application with Sequelize
- executing, with MongoDB / Running the Notes application with MongoDB
- Twitter login support, implementing / Twitter login support for the Notes application
- real time updates, implementing / Real time updates on the Notes home page
- inter-user chat, implementing / Inter-user chat and commenting for Notes
- commenting / Inter-user chat and commenting for Notes
- Notes Application
- application architecture / Notes application architecture
- Notes application stack
- executing / The Notes application stack
- NPM
- npm command
- about / Other npm commands
- npm package
- about / npm – the Node.js package management system
- format / The npm package format
- URL / The npm package format, Finding npm packages
- searching / Finding npm packages
- npm commands / Other npm commands
- installing / Installing an npm package
- initializing / Initializing a new npm package
- dependencies, maintaining / Maintaining package dependencies with npm
- package dependencies, updating for bugs / Fixing bugs by updating package dependencies
- Node.js version compatibility, declaring / Declaring Node.js version compatibility
- outdated packages, updating / Updating outdated packages you've installed
- installing, from npm repository / Installing packages from outside the npm repository
- publishing / Publishing an npm package
- URL, for publishing / Publishing an npm package
- version numbers, displaying / Package version numbers
- npm repository
- URL / The npm package format
- nvm
- used, for installing development instances / Installing development instances with nvm
- URL / Installing development instances with nvm
O
- OpenSSL
- URL / System requirements
P
- package manager
- package managers
- used, for installing Node.js / Installing Node.js using package managers
- path names
- PM2
- URL / Setting up PM2 to manage Node.js processes
- setting up / Setting up PM2 to manage Node.js processes
- Twitter support, for hosted Notes app / Twitter support for the hosted Notes app
- POSIX-like systems
- Node.js, installing from source / Installing from source on POSIX-like systems
- Promise class
- Promise objects
- about / Promises and error handling
- Pending state / Promises and error handling
- Fulfilled state / Promises and error handling
- Rejected state / Promises and error handling
- Pyramid of Doom
- Python
- URL / System requirements
R
- real time updates
- implementing, on Notes home page / Real time updates on the Notes home page
- EventEmitter class, implementing / The Notes model as an EventEmitter class
- modifying / Real-time changes in the Notes home page
- home page template, modifying / Changing the home page template
- Notes application, executing / Running Notes with real-time home page updates
- notes, viewing / Real-time action while viewing notes
- note view template, modifying / Changing the note view template for real-time action
- Notes application, executing while viewing notes / Running Notes with real-time updates while viewing a note
- relative module identifiers
- Representational State Transfer (REST)
- about / Making HTTP Client requests
- REST backend services
- testing / Testing REST backend services
- RESTful frameworks / Some RESTful modules and frameworks
- RESTful modules / Some RESTful modules and frameworks
- Restify
- router functions
S
- ScaleGrid.io
- URL / Storing notes in MongoDB
- Semantic Versioning model
- URL / Package version numbers
- Sequelize module
- notes, storing with / Storing notes the ORM way with Sequelize
- URL / Storing notes the ORM way with Sequelize, Sequelize model for the Notes application
- about / Storing notes the ORM way with Sequelize
- model, creating / Sequelize model for the Notes application
- references / Sequelize model for the Notes application
- database connection, configuring / Configuring a Sequelize database connection
- Notes application, executing with / Running the Notes application with Sequelize
- server-side JavaScript
- about / Server-side JavaScript
- Socket.IO
- about / Introducing Socket.IO
- initializing, with Express / Initializing Socket.IO with Express
- source
- Node.js, installing on POSIX-like systems / Installing from source on POSIX-like systems
- SQLite3
- notes, storing with / Storing notes in SQL with SQLite3
- URL / Storing notes in SQL with SQLite3
- database scheme / SQLite3 database scheme
- model code / SQLite3 model code
- Notes application, executing / Running Notes with SQLite3
- Supervisord
T
- template strings
- top-level module identifiers
- Twelve-Factor application model
- Twelve-Factor app model
- Twenty Twelve theme
- about / Mobile-first paradigm
- URL / Mobile-first paradigm
- Twitter Bootstrap
- using, on Notes application / Using Twitter Bootstrap on the Notes application
- URL / Using Twitter Bootstrap on the Notes application
- setting up / Setting it up
- Twitter login support
- for Notes application / Twitter login support for the Notes application
- application, registering with Twitter / Registering an application with Twitter
- TwitterStrategy, implementing / Implementing TwitterStrategy
U
- Ubuntu
- Node.js, installing / Installing Node.js on Ubuntu
- User Authentication service
- AuthNet, creating / Creating the AuthNet for the User Authentication service
- with MySQL / MySQL for the Authentication service
- dockerizing / Dockerizing the Authentication service
- user information microservice
- creating / Creating a user information microservice
- user information model, creating / User information model
- REST server, using / A REST server for user information
- user authentication server, testing / Scripts to test and administer the User Authentication server
- user authentication server, administering / Scripts to test and administer the User Authentication server
V
- versions policy
- about / Node.js versions policy and what to use
- considerations / Node.js versions policy and what to use
- VirtualBox
- using / Traditional Linux Node.js service deployment
- remote access, configuring / Configuring remote access in VirtualBox on Docker toolbox
- Virtual Private Service (VPS)
W
- web application frameworks
- using / Web application frameworks
- Windows
- Node.js, installing / Installing on Linux, *BSD, or Windows from package management systems
- Windows/Mac
- Docker, starting / Starting Docker with Docker for Windows/Mac
Y
- Yahoo! scale Node.js
- YAML
- reference link / Storing notes the ORM way with Sequelize