Index
A
- AbsurdJS
- API
- refactoring / Refactoring the API
- API handler
- about / Forming the main server handlers
- application
- layers / Introducing the basic layers of the application
- entry point, constructing of / Constructing the entry point of the application
- assertion library / The assertion library
B
- Browserify
- brute-force-driven development
- build system
- built-in modules
- about / Introducing built-in modules
- server, creating with HTTP module / Creating a server with the HTTP module
- files, reading / Reading and writing to files
- files, writing / Reading and writing to files
- events, defining / Working with events
- child processes, managing / Managing child processes
C
- child processes
- managing / Managing child processes
- client-side JavaScript
- packing / Packing client-side JavaScript
- Gulp, concatenating with / Concatenating with Gulp
- modularity in browser, with RequireJS / Modularity in the browser with RequireJS
- moving from Node.js to browser, with Browserify / Moving from Node.js to the browser with Browserify
- code
- extending / Extending the code from the previous chapter
- base model class, updating / Updating our base model class
- navigation, updating of pages / Updating page navigation and routing
- routing, updating of pages / Updating page navigation and routing
- code-over-configuration principle
- about / Discovering Gulp
- comment
- posting, to page / Posting a comment to a page
- comments
- displaying / Showing the comments
- CommonJS
- about / Defining and using modules
- content
- storing, in database / Storing content in the database
- controller
- defining / Defining a controller
- Controller
- controller, of home page
- updating / Updating the controller of the home page
- CSS preprocessing
- about / CSS preprocessing
- CSS preprocessors
- about / CSS preprocessing
- Less / CSS preprocessing
- Sass / CSS preprocessing
- currently added pages
- displaying / Showing the currently added pages
- current setup
- evolving / Evolving the current setup
D
- DalekJS
- testing with / Testing with DalekJS
- installing / Installing DalekJS
- DalekJS API
- using / Using the DalekJS API
- database
- content, storing / Storing content in the database
- record, creating / Creating a record in the database
- database server
- MongoDB, connecting to / Connecting to the database server
- date property / Storing content in the database
- directory structure
- about / Directory structure
E
- emit function
- about / Working with events
- entry point
- constructing, of application / Constructing the entry point of the application
- event loop library
- events
- working with / Working with events
- managing, to particular page / Managing events attached to a particular page
- execution order, code
- tweaking / Tweaking the code's execution order
F
- feed, user
- displaying / Showing the user's feed
- files
- reading / Reading and writing to files
- writing / Reading and writing to files
- saving, with Node.js / Serving files with Node.js
- posting / Posting files
- form
- adding, to post text messages / Adding a form to post text messages
- adding, for creating pages / Adding a form to create pages
- filling / Filling and submitting the registration form
- submitting / Filling and submitting the registration form
- form-submitted event
- listening to / Listening to the form-submitted event
- FormData interface / Posting files
- friends
- finding / Finding friends
- search page, adding / Adding the search page
- model, writing / Writing the model
- fetching, from database / Fetching friends from the database
- users, making as / Marking users as friends
- selecting / Selecting friends and sending their IDs to the backend
G
- Grunt
- about / Introducing Grunt
- Gulp
- about / Discovering Gulp, Concatenating with Gulp
- concatenating with / Concatenating with Gulp
H
- handlebards
- headless browser
- about / Running our test with PhantomJS
- HTML5 history API
- reference link / Implementing the router
- HTML templates
- delivering / Delivering HTML templates
- defining, in script tags / Defining the templates in script tags
- loading externally / Loading the template externally
- HTML, writing inside JavaScript / Writing HTML inside the JavaScript
- precompiling / Precompiling templates
I
- IDs, friends
- sending, to backend / Selecting friends and sending their IDs to the backend
J
- Jasmine
- about / The testing framework
- JavaScript files
- ractive.js / Forming the main server handlers
- app.js / Forming the main server handlers
L
- Less
- URL / CSS preprocessing
- about / CSS preprocessing
- linked users
- displaying, on Profile page / Displaying the linked users on the Profile page
- loading keyword
- about / Adding the search page
M
- main server handlers
- forming / Forming the main server handlers
- API handler / Forming the main server handlers
- page handler / Forming the main server handlers
- message property
- about / Adding the search page
- messages
- exchanging, between client and server / Exchanging messages between the client and the server
- sending, to user's friends / Sending messages to the user's friends only
- Mocha
- model
- creating / Creating a model
- defining / Introducing the content's model
- Model
- Model-View-Controller pattern
- about / The Model-View-Controller pattern
- Model / The Model-View-Controller pattern
- View / The Model-View-Controller pattern
- Controller / The Model-View-Controller pattern
- module
- creating / Creating a module
- using / Using modules
- updating / Updating our module
- modules
- defining / Defining and using modules
- using / Defining and using modules
- MongoDB
- working with / Working with the MongoDB database
- URL / Working with the MongoDB database
- installing / Installing MongoDB
- URL, for downloading / Installing MongoDB
- URL, for installation instructions / Installing MongoDB
- running / Running MongoDB
- connecting, to database server / Connecting to the database server
- mustache
- URL / Introducing Ractive.js
N
- Node.js
- architecture / Understanding the Node.js architecture
- V8 / Understanding the Node.js architecture
- thread pool / Understanding the Node.js architecture
- event loop library / Understanding the Node.js architecture
- installing / Installing Node.js
- URL / Installing Node.js
- server, running / Running Node.js server
- Node Package Manager (NPM)
- about / Installing Node.js
- number of likes
- counting / Liking posts and counting the number of likes
- displaying / Showing the number of likes
O
- output, chat
- customizing / Customizing the output of the chat
P
- packages
- managing / Managing and distributing packages
- distributing / Managing and distributing packages
- module, creating / Creating a module
- module, using / Using modules
- module, updating / Updating our module
- page
- comment, posting to / Posting a comment to a page
- page handler
- about / Forming the main server handlers
- pages
- creating, via adding form / Adding a form to create pages
- post
- sharing / Sharing a post
- posts
- processes
- used, for capturing test / Testing user registration
- Profile page
- linked users, displaying on / Displaying the linked users on the Profile page
- project
- preparing, to run tests / Preparing our project to run tests
Q
- QUnit
- about / The testing framework
R
- Ractive.js
- Ractive.js framework
- React
- record
- creating, in database / Creating a record in the database
- registration, user
- testing / Testing user registration
- Representational State Transfer (REST)
- about / Introducing the REST API concept
- RequireJS
- REST API
- about / Introducing the REST API concept
- REST architecture
- GET requests / Introducing the REST API concept
- POST requests / Introducing the REST API concept
- PUT requests / Introducing the REST API concept
- DELETE request / Introducing the REST API concept
- router
- implementing / Implementing the router
- runner / Runner
S
- Sass
- about / CSS preprocessing
- URL / CSS preprocessing
- searchFor variable
- about / Adding the search page
- Selenium
- Semantic Versioning 2.0.0
- URL / Updating our module
- server
- creating, with HTTP module / Creating a server with the HTTP module
- Socket.IO
- about / Bringing Socket.IO to the project
- URL / Bringing Socket.IO to the project
- bringing, to project / Bringing Socket.IO to the project
- specific page
- displaying / Showing a specific page
T
- tagged users
- storing / Storing the tagged users and displaying them in the user's feed
- displaying, in user's feed / Storing the tagged users and displaying them in the user's feed
- task runner
- tasks
- js / Discovering Gulp
- watchers / Discovering Gulp
- default / Discovering Gulp
- TDD
- about / Test-driven development
- benefits / Test-driven development
- test
- running, with PhantomJS / Running our test with PhantomJS
- testing framework / The testing framework
- testing toolset
- about / Introducing the basic testing toolset
- testing framework / The testing framework
- assertion library / The assertion library
- runner / Runner
- text
- posting / Posting and storing text
- storing / Posting and storing text
- form adding, to post text messages / Adding a form to post text messages
- model, defining / Introducing the content's model
- home page controller, updating / Updating the controller of the home page
- content, storing in database / Storing content in the database
- TheGuardian
- URL / Introducing Ractive.js
- thread pool
U
- UI
- preparing, of chat area / Preparing the UI of the chat area
- update method
- user
- about / Introducing the REST API concept
- user authentication, with sessions
- userId property / Storing content in the database
- user interaction
- simulating / Simulating user interaction
- userName property / Storing content in the database
- user profile
- managing / Managing a user's profile
- user registration
- about / Registering a new user
- frontend, updating / Updating the frontend
- backend API, updating / Updating the backend API
V
- V8
- View
- views
- managing / Managing our views
W
- WebDriver JSON-Wire protocol
- about / Testing with DalekJS
- WebSockets
- about / Getting to know WebSockets
- defining / Getting to know WebSockets
- used, for real-time web apps / Getting to know WebSockets
- benefits / Getting to know WebSockets
- HTTP communication / Getting to know WebSockets
- Ajax polling / Getting to know WebSockets
- Ajax long-polling / Getting to know WebSockets
- HTML5 Server-sent Events (EventSource) / Getting to know WebSockets