Index
A
absolute path
actions
cleaning up
creating to enroll users
addJoinButtonListener function, 2nd, 3rd
AJAX functions, creating
API (application programming interface), 2nd, 3rd
accessing applications from
adding courses partials
adding security
adding API tokens
implementing simple security
using JWT (JSON web tokens)
adding to applications
applying namespaces
calling from clients
creating
creating actions to enroll users
creating AJAX functions
endpoints
adding
creating to connect models
restructuring routes
apiToken parameter
app constant
application routing
application settings properties
applications
accessing APIs from
applying API namespaces
creating API endpoints to connect models
joining courses via modal
adding APIs to
calling APIs from clients
creating APIs
organizing routes
building
in Express.js
overview of
coding
connecting MongoDB database to
debugging
deploying, 2nd, 3rd
linting
logging
preparing for
preparing for production
setting up databases
setting up databases in production
to Heroku
directory structures of
initializing, 2nd, 3rd, 4th
REPL in development of
running, 2nd
setting up Mongoose with
setting up with Express.js
installing Express.js package
web framework
testing
with Chai
with core modules
with databases
with Mocha
with servers
arrow functions, 2nd
assert method, 2nd
assertion test
assets
adding
serving
associations, creating for models
Atom text editor
authenticating users
at login
implementing Passport.js
modifying create action to use passport registration
B
backticks
bcrypt tool, 2nd
beforeEach function
body attribute, 2nd, 3rd
body-parser package, 2nd
boilerplate code
brew install command
brew install mongodb command
C
callbacks
Chai framework, testing applications with
chat boxes, creating
chats
creating Message models
displaying user names in
installing Socket.io
loading messages on connection
messages, saving
connecting messages to users
creating Message models
displaying user names in chats
notification indicators
adding
creating in navigation
setting up chat icons
setting up Socket.io
on clients
on servers
CLI (command-line interface), 2nd, 3rd
client.broadcast.emit
clients
calling APIs from
connecting to servers
setting up Socket.io on
client-side interactions
command-line interface (CLI), 2nd, 3rd
compare method
computed attribute
confetti_cuisine database
configuration
environments
installing Node.js
installing text editor
Node.js REPL in terminals
setting up deployment tools
setting up SCM
overview of
connectFlash messages
connect-flash package, 2nd
console.log( ) function, 2nd
console.time function
console.timeEnd function
const variables
contact.ejs file, 2nd
content, passing to views
content-types module
controllers
adding flash messages to actions
creating
for CRUD models
for subscribers
passing data from
promises with Mongoose
cookie-parser package, 2nd
core modules, testing applications with
courses
joining via modal
partials, adding
courses property, 2nd
create actions, modifying to use passport registration
createServer function
createStrategy method
CRUD (create, read, update and delete) models
building
controllers
methods, adding to user models
setting up
structuring routes
views
curl command
current-user class
currentUser variable, 2nd
customReadFile function, 2nd
D
data
modeling
passing from controllers
populating from associated models
posted data, saving to models
request data, analyzing, 2nd
seed data, loading
user data, reading with show
data chunks
databases
setting up, 2nd, 3rd
testing applications with
data-id attribute
db variable
db.contacts.find command
db.contacts.findOne command
DEBUG environment variable
debugging, 2nd
delete function
deleting users
dependencies
deployment, 2nd, 3rd
debugging in production
linting
logging
preparing for
preparing for production
setting up databases
setting up databases in production
to Heroku
deployment tools
describe function
devDependency
directory structures of applications
displayMessage function, 2nd, 3rd
dyno server
E
edit user forms, building
EJS (Embedded JavaScript), 2nd
ejs package
emit method
encryption
adding with Passport.js
overview of
endpoints, API
adding
creating to connect models
enrolling users
environmental variable
environments, configuring
installing Node.js
installing text editor
Node.js REPL in terminals
setting up deployment tools
setting up SCM
error handling, 2nd
Express.js
modifying start scripts
serving static files
error parameter
error.ejs file
errorJSON action
ES6 (ECMAScript
arrow functions
const variable
JavaScript syntax in
let keyword
string interpolation
event loop
expect function
exports object
exports.sendReqParam
express module
Express.js framework
applications
building
setting up
web framework
building routes with
handling errors with
installing package
routing in
analyzing request data
using MVC
express-ejs-layouts package, 2nd, 3rd
express-generator package
express_routes application
express-session package, 2nd
express-validator, 2nd
external files
F
fadeIn method
fadeOut method
file system modules
files
external, serving
moving routes to
filterUserCourses function, 2nd
find query method, 2nd, 3rd
findById query method, 2nd
findByIdAndRemove method
findByIdAndUpdate method, 2nd
findLocalSubscribers
findOne query method
findWexlers
flags
flash messages
adding
overview of
to controller actions
setting up modules
flashMessages variable, 2nd
forEach method
fs (file system) modules, 2nd, 3rd
fs.readFile method
full stack development
function keyword
G
GET request, 2nd
getAllSubscribers function, 2nd, 3rd
getCurrentUserClass function
getFile function
getInfo method
getJSONString function
getSubscriptionPage function, 2nd, 3rd, 4th
getUserParams function
getViewUrl function
git add command
git init command
git push heroku master command
global objects
global variables
H
handle function
Handlebars.js engine
Hapi.js
hash field
hashed value
hashing passwords, 2nd
heroku config command
heroku create command
heroku local web command
heroku logs --tail command, 2nd
Heroku platform, deploying to
heroku run bash command
heroku run node command
Homebrew
homeController.respondWithName function
hooks
href value
HTTP methods
httpStatus.NOT_FOUND code
http-status-codes module, 2nd, 3rd
I
icons for chats
id parameter
id property
IDE (integrated development environment)
if statements
if-else block
include keyword
incoming data
adding routes to web applications
analyzing request data
reworking server code
index pages
index.ejs file
indexView action, 2nd
initializing applications, 2nd, 3rd, 4th
inputPassword method
insert method
installing
Express.js package
Node.js
Socket.io
text editor
integrated development environment (IDE)
internalServerError action
isAuthenticated method
J
JavaScript language
creating files
running files with Node.js
running in REPL
running individual commands
syntax in ES6, 2nd
arrow functions
const variable
let keyword
REPL
string interpolation
join table
join-button class
joined property
jsonwebtoken package
JWT (JSON Web Tokens), 2nd
K
L
layout.ejs file
layouts, 2nd
let keyword, 2nd
variable
linting, 2nd
logErrors function
logging, 2nd
login forms
creating
implementing
logins
authenticating users at
for users, building
adding validation middleware with express-validator
implementing user login forms
logRequestPaths
long polling
lowercase property
M
main.js files
many-to-many relationship
Message models, 2nd
messageAttributes object, 2nd, 3rd
messages
connecting to users
loading on connection
messages.reverse( ) function
method-override package, 2nd, 3rd
middleware
Mocha framework, testing applications with
modal-body class
modals, joining courses via
model method
models, 2nd
adding validations on
building edit user forms
building with Mongoose
creating schema
organizing models
creating
building new user forms
creating new users from views
creating API endpoints to connect
creating associations
deleting
deleting users with delete action
Message models, 2nd
organizing in Mongoose
populating data from associated
promises with Mongoose
reading
saving posted data to
testing in REPL
updating
updating users from view
model-view-controller (MVC), 2nd, 3rd, 4th
module object
module.exports object
modules
creating
initializing Node.js applications
running npm commands
setting up flash message modules
MongoClient class
MongoDB database
connecting to applications
running commands in shell
setting up
MONGODB_URI variable
Mongoose framework
building models with
creating schema
organizing models
promises with
setting up with Node.js applications
multiply module
Mustache.js engine
MVC (model-view-controller), 2nd, 3rd, 4th
N
name attribute, 2nd
names of users, displaying in chats
namespaces, 2nd
navigation, creating chat indicators in
new user forms
next function
node keyword, 2nd
Node version manager (NVM)
Node.js
advantages of
installing
overview of
REPL in terminals
running Javascript files with
node_modules folder
nodemon package
nodist
notEmpty validations
npm (node package manager)
commands, running
initializing applications with
npm docs express command
npm init command, 2nd, 3rd
npm start command
NVM (Node version manager)
nvm-windows
O
Object.assign property
ObjectId class
ODM (object-document mapper), 2nd
offeredCourses variable
one-to-many relationship
one-to-one relationship
P
package-lock.json file
packages, 2nd
paramsName variable
partials
adding courses partials
overview of
setting up
passport package
passport registration
passport.authenticate method
Passport.js
adding authentication with
adding encryption with
implementing
passport.register method
passport-local-mongoose package
password property
passwordComparison method
passwords, hashing, 2nd
passwordsMatch method
PATH variable
polling
populate method, 2nd, 3rd
post function
post hooks
POST request, 2nd
posted data, saving to models
postedContactForm
pre hooks
printNumbers variable
process.env.NODE_ENV variable
processes
production
debugging in
managing
debugging applications
linting
loading seed data
preparing for
setting up databases in
production environment
promises with Mongoose
Pug.js engine
Q
R
rand-token package
ReadableStream library
readFile function
redirectView function, 2nd
register method, 2nd
relational databases
remove query method
REPL (Read-Evaluate-Print Loop)
in application development
in terminals
running JavaScript in
testing models in
representational state transfer (REST), 2nd
request data, analyzing, 2nd
request event
require( ) function
res.locals.redirect variable
res.render method
respondInternalError function
respondJSON function, 2nd
respondNoResourceFound function
respondWithName function, 2nd
REST (representational state transfer), 2nd
restructuring routes
result variable
reverse function
route mapping
route parameters
router.get function
router.js library
router.post function
routeResponseMap
routes
adding
overview of
to web applications
building with Express.js
creating
in Express.js
analyzing request data
using MVC
moving to another file
organizing
restructuring
structuring for CRUD models
to views
writing
S
Sails.js
salt field
sanitizers
save flag
saveSubscriber function, 2nd, 3rd
saveUninitialized
scaffolding
schema, creating with Mongoose
Schema.Types.ObjectId
SchemaTypes
SCM (software configuration management)
<script> tags
scripts property
security
API, adding
adding API tokens
using JWT (JSON web tokens)
implementing
seed data
send method
sendReqParam variable
serializing data
servers
connecting to clients
reworking code
setting up Socket.io on
testing applications with
server-side interactions
serving
assets
external files
static files
overview of
with fs module
static views
sessions
set method
setTimeout function
show collections command
show, reading user data with
show.ejs file
Socket.io library
connecting servers and clients
creating chat boxes
installing
setting up
on clients
on servers
sockets, broadcasting chat notification to
start scripts, modifying
static files, serving
overview of
with fs module
static function
static views
strict mode
String format
string interpolation
subscribedAccount property, 2nd
Subscriber model
subscriber routes
subscriber views
subscribers, creating controllers for
subscribersController.js, 2nd
T
targetSubscriber variable
TDD (test-driven development)
templates, connecting views with
connecting templating engines
passing data from controllers
setting up layouts
setting up partials
templating engines
terminals, Node.js REPL in
test-driven development (TDD)
testing
applications
with Chai
with core modules
with databases
with Mocha
with servers
models in REPL
testSubscriber array
text editors, installing
then method
thesubscribersController function
threads, 2nd
timestamps property, 2nd
Total.js
trim property
U
Underscore.js engine
unique option
UNIX terminal (Bash) commands
update function
updatedAt attribute
updating users from views
url property
url variable
use method
user login forms
user models
adding CRUD methods to
building
building index pages
cleaning up actions
user subscriptions, saving
adding subscriber routes
adding subscriber views
modeling data
setting up databases
user variable
userParams variable
users
authenticating
adding authentication with Passport.js
adding encryption with Passport.js
adding flash messaging
adding validation middleware with express-validator
at login
creating login forms
implementing Passport.js
logging in and out
modifying create action to use passport registration
building logins for
connecting messages to
creating actions to enroll
creating new from views
deleting with delete action
displaying names in chats
edit user forms, building
login forms, implementing
new user forms, building
reading data with show
updating from views
userSchema.methods .passwordComparison
usersController, 2nd
utils module
V
validate action
validation middleware, 2nd
validations, adding on models
validators
value attribute
var keyword, 2nd
var-defined variables
verifyJWT function
verifyToken function, 2nd
views
connecting with templates
connecting templating engines
passing data from controllers
setting up layouts
setting up partials
creating
for CRUD models
overview of
creating new users from
passing content to
routing to
updating users from
virtual attributes, 2nd
virtual method
Visual Studio Code
W
web applications
adding routes to
creating
adding assets
application directory structures, overview of
initializing applications
main.js
router.js
routes
views
web framework
web servers
building
coding applications
initializing applications with npm
running applications
overview of
web sockets