Index

[SYMBOL][A][B][C][D][E][F][G][H][I][J][K][L][M][N][O][P][Q][R][S][T][U][V][W][X][Y]

SYMBOL

200 status code2nd
400 Bad Request status code
403 Forbidden status code2nd
404 Not Found status code2nd
500 Server Error status code

A



access control
  policies and2nd
    best practices
    preventing confusion for signed-in users
    preventing inconsistent user experience
    preventing users from changing data of other users
    restricting access to account management endpoints
    restricting access to administrative actions
  rules, adjusting.
    See blueprint routes.
account management endpoints, restricting access to
account-related pages, securing
action blueprints
action routes
actions2nd
  administrative
    listing all users in database
    restricting access to
    updating administrative flags
  creating
  custom, to serve homepage
  editing user profiles
    retrieving record for particular user
    retrieving user’s Gravatar URL
    saving updated information
    updating user password
  identifying requirements for
  names, refactoring repetitive
  providing data for user profile page
    permanently deleting users
    retrieving information
    soft-deleting user records
  refactoring, to use associations
  restoring user accounts
  routes and
    automatic routing
    res.json()
  signup form
    adding dummy user in bootstrap.js
    creating user records
    encrypting passwords
    naming custom actions
    preventing duplicate accounts
    profile images with Gravatar
    validating email addresses

adapters
  databases and
  overview
.add() method
admin interface
  admin attribute
  banned attribute
admin property2nd3rd4th
administration page, securing
administrative actions
  listing all users in database
  restricting access to
  updating administrative flags
administrative flags, updating

AJAX
  creating records with
  deleting record with
  finding records with
  locating particular record with
  updating record with
Angular2nd
  forms
  listing data with
API (application programming interface)
  backend
    design of
    overview
    routes
    validations in
  chat, creating
  designing, frontend-first
  finalizing
  frontend
    assets, delivering
    backend design starting with code from
    validations in.
    See blueprint APIs.
API Reference, Brushfire

applications
  developing, selecting operating system
  Sails, creating
arrays, embedded
assert() method2nd
asset pipeline
asset routes

assets, static
  Angular
  frontend-first API design
  jQuery
  overview
  pipeline
  scripts, managing
  static routing
  stylesheets, managing
associations2nd
  .add()
  configuring between models
  embedded data and
    relationships between data
    services
  .populate()
  refactoring actions to use
  refactoring bootstrap.js to use
  .remove()
  .save()
  two-way, creating with via.
    See JSON, embedded.
async library2nd
async module
async package
async.each() method2nd
asynchronous functions2nd
asynchronous programming

attributes, databases and
  defining
  validation of

authentication
  defined
  of users after signup
  sessions and
autogenerated REST APIs
automatic routing, for custom actions
auto-migration settings, configuring
auto-migrations, handling existing data with2nd
averages, calculating

B

backend API2nd3rd4th
  design of
  overview
  routes
  validations in
backend application flow, implementing
  business rules for signup page
  personalizing user profile page
  personalizing video list
  securing administration page
  securing edit-profile form
  securing other account-related pages
backend code
  converting requirements into development tasks
  creating multiple records
  machinepacks
  model methods
  running on sails lift
before() method2nd

best practices
  access control
  policies
blueprint action
blueprint APIs
  filtering data returned by blueprints
  prototyping with
    auto-migrations
    designing API around user interface
    generating API in Sails
    obtaining example materials
  RESTful blueprint routes
    creating records with AJAX
    deleting record with AJAX
    finding records with AJAX
    locating particular record with AJAX
    updating record with AJAX
  shortcut blueprint routes
    accessing database from URL bar
    creating records with
  upgrading to WebSockets
    replacing $http.get() with io.socket.get()
    replacing $http.post() with io.socket.post()
  using RPS methods
    add action
    create action
    destroy action
    find action
    findOne action
    populate action
    remove action
    update action
blueprint routes2nd3rd
  designing custom backend endpoints
  disabling
  explicit routes
blueprints, prototyping with
bootstrap function2nd3rd4th5th
bootstrap.js2nd3rd
  adding dummy user in
  bootstrap.css.map
  bootstrap.min.css2nd
  refactoring, to use associations
Brushfire
  deploying
    configuring sessions and sockets for production
    Heroku, 2nd
    Heroku and
    overview
    remote PostgreSQL database, using
    runtime environments
    scaling to multiple dynos
  models, after pivot
build-time process, vs. runtime process
built-in controller actions
built-in response pages

C

callback hell
cb() method
CCS (cloud computing service)

CDN (content delivery network)
  overview2nd
  static-assets on
chat
  adding event listener to frontend
  adding to existing page
  APIs, creating
  notifications, sending
  subscribing sockets to rooms
chat model2nd
click events, jQuery
client-side router
client-side templates, EJS views and
code refactoring
code, duplicative
collection association
collections, removing records from

command-line terminal
  locating
  overview
communication, with WebSockets
  stoppedTyping notifications, sending
  typing notifications, sending
community support, for Sails.js
.config function
config/bootstrap.js file2nd

configuring
  associations between models
  databases
connection property2nd3rd
connection setting
consolidating duplicative code
container
containerization
content delivery network.
    See CDN.
CORS (cross-origin resource sharing)
.count() method2nd3rd4th
create action2nd3rd
create blueprint action2nd
.create() method2nd3rd
created attribute
createdAt attribute2nd3rd
createTutorial action2nd3rd4th
credentials, storing in environment variables
CRUD (create, read, update, and delete)2nd
CSRF (cross-site request forgery)2nd3rd
csrf property

CSRF tokens
  adding for WebSocket requests
  disabling
  establishing
  inserting via hidden input field
  protection
  sending
csrf variable
cursors module
Cursor.subscribe() method
Cursor.watch() method
custom actions
  administrative actions
    listing all users in database
    updating administrative flags
  editing user profiles
    retrieving record for particular user
    retrieving user’s Gravatar URL
    saving updated information
    updating user password
  identifying requirements for
  naming
  providing data for user profile page
    permanently deleting users
    retrieving information
    soft-deleting user records
  restoring user accounts
  routes and
    automatic routing
    res.json()
  signup form
    adding dummy user in bootstrap.js
    creating actions
    creating user records
    encrypting passwords
    naming custom actions
    preventing duplicate accounts
    profile images with Gravatar
    req.param()
    response methods
    validating email addresses
  to serve homepage
custom backend code
  converting requirements into development tasks
  creating multiple records
  machinepacks
    callbacks
    finding package to work with YouTube API
    installing
    machine exits
    machine inputs
    machinepack-youtube
    marshaling data
    setting custom configuration in local.js
    using
    using custom configuration in code
  model methods
  running on sails lift
custom code, accessing environment variables in
custom routing, error pages and

customizing
  built-in response pages
  views, based on edit permissions

D

DaaS (database as a service)

data
  associations and2nd
    .add(), .remove(), and .save()
    configuring between models
    .populate()
    refactoring actions to use
    refactoring bootstrap.js to use
    relationships between data
    services
    via to create two-way
  listing
    with Angular
    with jQuery
  managing
    admin interface
    example materials for this chapter
    frontend-first approach to data modeling
    recovering after soft delete
    signup page
    user profile page
  populating
  updating records with
data auto-migrations
databases
  accessing from URL bar
  adapters and
  attributes
    defining
    validation of
  autoincremented
  auto-migration settings, configuring
  auto-migrations, handling existing data with2nd
  configuring
  filtering data returned by blueprints
  handling existing data with Sails auto-migrations
  models and2nd
  overview
  remote, configuring connection to
DATABASE_URL variable2nd
datastore, setting default for production

default homepage
  overview
  replacing
DELETE method2nd
deleted attribute2nd3rd4th

deleting
  records, with AJAX
  tutorials
denial of service attacks.
    See DoS.

deployment, Brushfire
  configuring sessions and sockets for production
  Heroku and2nd3rd
  overview
  remote PostgreSQL database, using
  runtime environments
  scaling to multiple dynos
describe() method
description parameter2nd
destroy blueprint action
.destroy() method2nd

developing web applications
  HTTP methods
  overview
  performing actions
  requests
  responses
  routing
dictionaries
documentation, Sails.js
DoS (denial of service) attacks
dummy user, adding in bootstrap.js
duplicate accounts, preventing
dynos, scaling to multiple

E

edit permissions, customizing views based on
edit-profile page
  retrieving record for particular user
  retrieving user’s Gravatar URL
  saving updated profile information
  securing
  updating user password
editTutorial action2nd

EJS (Embedded JavaScript)
  client-side templates
  refactoring
  template tags
  views

email
  addresses, validating
  delivering, configuring Mailgun for
  on signup page
  sending
email attribute2nd3rd4th
email parameter
Emailaddresses.validate() method
embedded arrays, managing video sort order with

embedded data
  associations and2nd
    .add(), .remove(), and .save()
    configuring between models
    .populate()
    refactoring actions to use
    refactoring bootstrap.js to use
    relationships between data
    services
    via to create two-way
  populating
  updating records with.
    See JSON, embedded.
embedded relationships, setting up
embedding values
encryptedPassword attribute2nd
encryptPassword() method

endpoints
  account management, restricting access to
  backend, designing custom
  follow
  logout, creating
  testing
  unfollow
entry point
environment variables
  accessing in custom code
  configuring connection to remote database
  storing credentials in
error exit
error pages, custom routing and
  customizing built-in response pages
  impact of
escape characters
event handler2nd

event listeners
  chat, adding to frontend
  overview
event names, and RPS methods
events
exec() method2nd
.execSync() method
execution context

F

favicon.ico file
features, adding new
filtering data returned by blueprints
find action2nd3rd
find blueprint action2nd3rd
find criteria2nd
.find() method2nd
finding records, with AJAX
findOne() method2nd3rd
firstApp package.json file
fixtures, refactoring tests using
folders, to organize views
followers
  displaying on user’s profile
  support for
followers attribute
following attribute2nd
forms
  adding dummy user in bootstrap.js
  Angular
  creating actions
  creating user records
  encrypting passwords
  jQuery
  naming custom actions
  preventing duplicate accounts
  profile images with Gravatar
  req.param()
  response methods
  validating email addresses
  video, creating

frontend API
  adding chat event listener to
  API design
  assets, delivering
  backend design starting with code from
  validation in
frontend-first approach2nd3rd

G

–g flag
generate command
generateRecoveryEmail action
GET method2nd
Get profile endpoint
GET request
$.get() syntax
getSession action
Git, installing

GitHub, repositories
  cloning
  overview
.gitignore file

Gravatar
  profile images with
  URL, retrieving user’s
gravatarURL attribute2nd3rd4th
gravatarURL parameter

Grunt
  for production
  overview

H

habitat
hard limit
helper functions, refactoring tests using

Heroku
  deploying to2nd
  tool belt, installing

homepage
  custom actions to serve
  default
    overview
    replacing
horizontal scaling
HTML escaping
HTTP (Hypertext Transfer Protocol)
HTTP methods
$http service
$http.get():replacing with io.socket.get()
$http.post():replacing with io.socket.post()
hybrid web applications2nd

I

id attribute
id parameter2nd
id property
IDE (integrated development environment)
IIFE (immediately invoked function expression)
img tag
impact of, variables in routes
IN query
index.html, reasons for using
in-memory datastore2nd
input values
inputs

installing
  machinepacks
  Node.js
  Sails.js
io.socket.get() method2nd3rd
io.socket.on() method2nd
io.socket.post() method
io.socket.request() method
IoT (Internet of Things)2nd
isAdmin policy2nd
_.isDefined() method
isLoggedIn policy2nd3rd
isLoggedOut policy2nd
isLoggedOut.js file
_.isString() method2nd
it() method2nd

J

JavaScript, client-side
jQuery
  forms
  listing data with
JSON, embedded
  creating records with
  populating embedded data
  setting up embedded relationships
  updating records with embedded data
.json() method
jwres2nd

K

key/value pairs2nd

L

layout property
layout template
layout view
layout.ejs
LESS support, built-in
limit option
<link> tags, automatically injecting
linkedInEmail attribute

listing data
  with Angular
  with jQuery
localDisk.db file
localDiskDb property
localhost
local.js, setting custom configuration in

locals dictionary
  hardcoding in routes
  overview2nd
locating records, with AJAX
logged-in status, saving
login process
  authenticating user after signup
  backend for login form
  configuring session store
  creating /login route
  creating logout endpoint
  login forms
  Sails sessions
  saving user’s logged-in status
  stateless, defined
  updating session when user is deleted or restored
ls command

M

Machine Specification2nd
machinepacks
  callbacks
  finding package to work with YouTube API
  installing
  machine exits
  machine inputs
  machinepack-youtube
  marshaling data
  setting custom configuration in local.js
  using
  using custom configuration in code
machinepack-youtube package
Mailgun, configuring for email delivery
man-in-the-middle.
    See MITM.
market-based pivot
MathService2nd
me dictionary2nd
me property
me.id property
me.isMe property
message attribute
.message() method
messages
methods, sails.sockets
middleware
migrate parameter
migrate property
migrate setting
MITM (man-in-the-middle)2nd
Mocha
model association
model attributes
model methods2nd3rd
  .count() model method
  .create() model method
  .destroy() model method
  .find() model method
  overview2nd
  testing
  .update() model method
model settings
models
  auto-migration settings, configuring
  auto-migrations, handling existing data with2nd
  Brushfire, after pivot
  configuration
    alter, 2nd
    drop
  configuring associations between
  creating new model
    creating records
    running generator
  databases and
  managing user data
    admin interface
    example materials for this chapter
    frontend-first approach to data modeling
    recovering data after soft delete
    signup page
    user profile page
  overview2nd
  relationships between.
    See also model methods.
modifiedAt attribute

modules
  from npm
  in Node.js
MongoDB
myPostgresqlServer connection2nd3rd4th5th

N

namespacing
new command
node package manager..
    See npm.
NODE_ENV variable

Node.js
  installing
  localhost
  modules
  organizing code in
  Sails applications, creating
  Sails server
    closing
    starting
node_modules folder

notifications
  chat, sending
  delivering using Redis
  listening for
  stoppedTyping
    excluding sender from broadcast
    sails.sockets methods
    sending
  typing
    excluding sender from broadcast
    sails.sockets methods
    sending
npm (node package manager)
  install command2nd3rd4th
  publish command
  test command
nullipotent policies

O

online resources for this book
  Git, installing
  GitHub
    overview
    repos
operating systems, selecting for application development
options dictionary2nd3rd
options.view property
outlet
OWASP (Open Web Application Security Project)

P

PaaS (platform as a service)
package manager, Node
package.json file
page content, personalizing for logged-in users
  custom actions to serve homepage
  PageController
Page controller2nd3rd4th5th
page navigation
pages, built-in response

paginating
  general
  search results
parameter key/value pairs
parameters
parser.href attribute
partials2nd
password-recovery flow
  overview
  sending emails

passwords
  encrypting
  for signup page
  updating
paths, relative
pathToView argument
persistent attack

personalizing
  page content for logged-in users
    custom actions to serve homepage
    PageController
  user profile page
  video list
  web pages
    EJS views
    explicit routes
    exposing data for use in client-side JavaScript
    hardcoding locals in routes
    partials and layout.ejs
pivots2nd
platform as a service.
    See PaaS.
.pluck() method

policies
  access control and2nd
    best practices
    preventing confusion for signed-in users
    preventing inconsistent user experience
    preventing users from changing data of other users
    restricting access to account management endpoints
    restricting access to administrative actions
  configuring
  creating
  defined
populate method2nd
populating embedded data
POST method2nd3rd
PostgreSQL2nd
  remote
  tables in
Postman
process dictionary
productionPostgresqlServer2nd
profile action2nd3rd

prototyping
  with blueprint API
    auto-migrations
    designing API around user interface
    generating API in Sails
    obtaining example materials
  with blueprints
.publishAdd() method2nd
.publishCreate() method
.publishDestroy() method
.publishRemove() method2nd
.publishUpdate() method
pure APIs2nd
purpose action
PUT method

Q

query string2nd3rd
.query() method

R

rateTutorial action2nd
rating model2nd3rd4th
ratings
  adding new
  incorporating
  videos
    adding records to collection association
    cascading delete
    creating forms
    editing details
    integrating player
    managing sort order using embedded array
    removing records from collections
realtime communication, with WebSockets2nd
  stoppedTyping notifications, sending
  typing notifications, sending

records
  adding to collection association
  creating with AJAX
  creating with embedded JSON
  creating with shortcut blueprint routes
  deleting with AJAX
  finding with AJAX
  locating with AJAX
  removing from collections
  updating with AJAX
  updating with embedded data
recovering data, after soft delete
recovering passwords

Redis
  provisioning remote instance
  to deliver notifications
  using in development
REDISTOGO_URL variable
.reduce() method
refactoring
  actions, to use associations
  adjusting access control rules
  bootstrap.js, to use associations
  client-side templates
  custom routing and error pages
  EJS views
  for requirement changes
    obtaining and revising requirements
    views, five categories of
  navigation
  password-recovery flow
    overview
    sending emails
  patterns and best practices
    adding new features
    using async.each()
    using folders to organize views
  repetitive action names
  views
relationships, embedded
relative paths
remote database, configuring connection to
remote repository, GitHub
.remove() method2nd
removeProfile() method2nd3rd4th
REPL (read-eval-print loop)2nd

repositories, GitHub
  cloning
  overview
req dictionary2nd3rd4th5th6th
  req.options
  req.param()
  req.session.userId property2nd3rd4th5th6th7th8th
  req.wantsJSON method
  res.badRequest() method2nd
  resData argument
request body
request headers
request line

requests
  overview
  virtual
require() function2nd
requirements, obtaining and revising
res dictionary2nd3rd
  res argument2nd
  res.badRequest() method2nd
  resData argument
  res.forbidden() method
  res.json() method2nd
  res.negotiate() method2nd
  res.notFound() method2nd
  res.ok() method
  res.send() method
  res.serverError() method
  res.view() function
resourceful pubsub methods.
    See RPS.
response body2nd
response headers
response line
response methods
responses
REST APIs, autogenerated
RESTful blueprint routes
  creating records with AJAX
  deleting record with AJAX
  finding records with AJAX
  locating particular record with AJAX
  updating record with AJAX
RESTful blueprints
RESTful routes
restoreProfile action2nd3rd
Reveal Config Vars option
RFC (Request For Comments) page
route address2nd
route dictionary
route target

routes
  /login, creating
  automatic routing, for custom actions
  blueprint
    designing custom backend endpoints
    disabling
  custom actions and
    automatic routing
    res.json()
  explicit
    defined
    overview
  hardcoding locals in
  in backend API
routing
  client-side vs. server-side
  custom
  static
    default homepage
    overview
RPS (resourceful pubsub) methods
  and event names
  blueprint APIs using
    add action
    create action
    destroy action
    find action
    findOne action
    populate action
    remove action
    update action
  .publishUpdate()
  .subscribe()
RTTC exemplar notation
runtime environment
  configuring auto-migration settings
  creating tables in PostgreSQL
  deploying to Heroku
  setting default datastore for production
  setting up Grunt for production
runtime, process

S

safe mode
sails generate command2nd
sails lift command2nd3rd4th5th
sails new command2nd
sails.config dictionary
sails-generate-static module
sails.io.js file

Sails.js
  applications, creating in Node.js
  benefits of
  community support
  documentation
  installing
  overview
  server
    closing
    starting
sails-linker task
sails-memory adapter
sails_model_create_cursor
same-origin policy
--save parameter
.save() method
scaling to multiple dynos
schemaless database
Schwartz, Barry
$scope dictionary2nd
$scope.apply() method
$scope.deleteProfile() function
$scope.me property2nd

<script> tags
  automatically injecting
  overview

scripts
  automatically injecting <link> tags
  automatically injecting <script> tags
  managing
scripts dictionary
search2nd
searchCriteria
searchTutorials action
.searchVideos() method
security policies
security realms
security, environment variables
  accessing in custom code
  configuring connection to remote database
  storing credentials in
sender attribute
SEO (search engine optimization)2nd
server-rendered views
  defined
  page navigation
  personalizing web pages
    EJS views
    explicit routes
    exposing data for use in client-side JavaScript
    hardcoding locals in routes
    layout.ejs
    partials
  transitioning from SPA

servers
  closing
  starting

services
  associations for tutorials-detail page
  consolidating duplicative code
session cookie
session store2nd

sessions
  authentication
  configuring for production
    configuring Mailgun for email delivery
    configuring remote session store
    provisioning remote Redis To Go instance
    using Redis in development
    using Redis to deliver notifications
  overview
  updating when deleted or restored.
    See also session store.
shadow routes2nd
shortcut blueprint routes
  accessing database from URL bar
  creating records with
shortcut blueprints2nd
shortcut routes
showHomePage action2nd3rd
showRestorePage2nd
showSignupPage action2nd3rd
showVideosPage action2nd
sign-in process
signup action2nd3rd4th5th
signup form
  adding dummy user in bootstrap.js
  creating actions
  creating user records
  encrypting passwords
  naming custom actions
  preventing duplicate accounts
  profile images with Gravatar
  req.param()
  response methods
  validating email addresses
signup page
  email address on
  implementing business rules for
  password for
  username on
signup, authenticating users after
skip query option
skipAssets property
slug2nd
socket connections, establishing
Socket.io

sockets
  configuring for production
    configuring Mailgun for email delivery
    provisioning remote Redis To Go instance
    using Redis in development
    using Redis to deliver notifications
  subscribing to rooms
soft delete, after recovering data

SPA (single-page application)
  overview2nd3rd4th5th
  transitioning from
src parameter2nd3rd
standardization
stateless, defined

static assets
  Angular
    forms
    listing data with
  frontend-first API design
  jQuery
    forms
    listing data with
  overview
  pipeline
    CDN, hosting on
    Grunt
    images, adding
    index.html
    overview
    relative paths
    .tmp/ folder
  scripts, managing
    automatically injecting <link> tags
    automatically injecting <script> tags
  static routing
    default homepage
    overview
  stylesheets, managing

static routing
  default homepage
  overview
static-asset pipeline
status code
streams
STYLES tags

stylesheets
  LESS support
  managing
Sublime Text
.subscribe() method
success exit
SuperTest

T

tables, in PostgreSQL
TDD (test-driven development)
template engines
template tags
templates, client-side
terminal window tab, opening
terminal, command-line
Terms of Service.
    See ToS.
testing2nd
  assert() method2nd
  endpoints
  environment, configuring
  from command line
  model methods
  overview
  refactoring using fixtures and helper functions
  test suite, installing dependencies for
  using before() and after()
  validations
text editors, versus IDEs
textual reason phrase
the-ultimate-question module2nd
TLS (transport layer security)2nd
.tmp folder
toJSON method
tokens
tools
  command-line terminal
  essential
  text editor vs. IDE
ToS (Terms of Service)2nd
transformation
try/catch
tutorialDetail action2nd3rd4th5th6th

tutorials
  deleting
  overview
two-way reference2nd3rd
typeof operator
typing action2nd

U

unary operator
uncaught exceptions, handling
Unix shell
.unsubscribe() method
.unwatch() method
update blueprint action
update() method2nd3rd
updatedAt attribute2nd

updating records
  with AJAX
  with embedded data
URL bar, accessing databases from
URL query string
user controller2nd
user data, managing
  admin interface
  example materials for this chapter
  frontend-first approach to data modeling
  recovering data after soft delete
  signup page
  user profile page
user experience, preventing inconsistent
user profile page
  displaying followers on
  personalizing
  providing data for
    permanently deleting users
    retrieving user profile information
    soft-deleting user records
user resource
user-agents
User.create() method2nd
userCreated function
User.destroy() method
User.find() method
User.findOne() method2nd3rd4th5th6th
userId property2nd3rd4th5th6th7th
user-initiated password resets
username attribute2nd3rd4th5th
:username variable

users
  accounts, restoring
  authenticating after signup
  Gravatar URL, retrieving
  listing all in a database
  password, updating
  permanently deleting
  personalizing page content for
    custom actions to serve homepage
    PageController
  preventing from changing data of other users
  profile information
    retrieving
    saving updated
  records
    creating
    retrieving
    soft-deleting
  saving logged-in status
  signed-in, preventing confusion for
  updating session when deleted or restored
User.update() method2nd3rd

V

validations, testing
verb phrase
verb property
vertical scaling2nd
via parameter, creating two-way associations with
via property
videos
  adding records to collection association
  cascading delete
  creating forms
  editing details
  integrating player
  personalizing list of
  removing records from collections
  sort order, managing using embedded array
view engines
views2nd
  customizing based on edit permissions
  defined
  five categories of
  folders to organize
  page navigation
  personalizing web pages
    EJS views
    explicit routes
    exposing data for use in client-side JavaScript
    hardcoding locals in routes
    partials
  refactoring
  transitioning from SPA
virtual requests

W

.watch() method
Waterline

web applications, development of
  HTTP methods
  overview
  performing actions
  requests
  responses
  routing

web pages
  accessing
  personalizing
    EJS views
    explicit routes
    exposing data for use in client-side JavaScript
    hardcoding locals in routes
    partials and layout.ejs
WebSocketId property

WebSockets
  overview2nd
  realtime communication with
  sails.sockets.blast method
  sails.sockets.broadcast() method2nd3rd4th
  sails.sockets.getId method
  sails.sockets.join() method2nd
  sails.sockets.leave method
  sails.sockets.leaveAll method
  socket connections, establishing
  upgrading to
    replacing $http.get() with io.socket.get()
    replacing $http.post() with io.socket.post()
  virtual requests
  with realtime
    stoppedTyping notifications, sending
    typing notifications, sending
window dictionary2nd3rd4th

X

XSS (cross-site scripting)2nd

Y

YouTube API, finding package to work with
YouTube ID2nd

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset