NODE.JS SOFTWARE DEVELOPMENT TRAINING

2 Days

Description

Objectives:

  • Learn what Node.js is and how its best used
  • Install and configure Node.js using platform installation packages and source code
  • Manage Node.js Packages with the Node Package Manager
  • Use and create Node.js Modules
  • Configure and secure a Web Application
  • Utilize file and stream resources with Node.js
  • Understand common Node.js programming patterns
  • Explore performance issues with Node.js
  • Troubleshoot Node.js problems

 

Upcoming Classes

Virtual Classroom Live
October 30, 2017

$1,295.00
2 Days    9:00am EST - 5:00pm EST
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date

Course Overview

  • CHAPTER 1. INTRODUCTION TO NODE.JS
    • What Is Node.js?
    • Application of Node.js
    • Installing Node.js and NPM
    • "Hello, Node World!"
    • How It Works
    • Built on JavaScript: Benefits
    • Traditional Server-Side I/O Model
    • Disadvantages of the Traditional Approach
    • Event-Driven, Non-Blocking I/O
    • Concurrency
    • Using Node Package Manager (NPM)
    • Express
    • Summary
  • CHAPTER 2. MODULE AND DEPENDENCY MANAGEMENT
    • Nature of a Node.js Project
    • Introduction to Modules
    • A Simple Module
    • Using the Module
    • Directory Based Modules
    • Example Directory Based Module
    • Using the Module
    • Making a Module Executable
    • Core Modules
    • Loading Module from node_modules Folders
    • Dependency Management Using NPM
    • Installing a Package
    • About Global Installation
    • Setting Up Dependency
    • Package Version Numbering Syntax
    • Updating Packages
    • Uninstalling Packages
    • Alternate Dependency Management
    • Summary
  • CHAPTER 3. THE FILE SYSTEM MODULE
    • Introduction
    • Basic File Manipulation
    • Getting File/Directory Meta Data
    • Read an Entire File
    • The Buffer Class
    • Writing to a File
    • Reading in Chunks
    • Writing in Chunks
    • The open() Method
    • Stream API
    • The Readable Interface
    • Example Reading Data in Chunks
    • The Writable Interface
    • Summary
  • CHAPTER 4. EVENTS IN NODE JS
    • Event Driven Programming
    • Event Driven Programming (Contd.)
    • Event Emitter
    • EventEmitter Class
    • EventEmitter Class – Inheritance
    • The Event Loop and Event Handler
    • Phases Overview
    • Event Handlers
    • Example (Using EventEmitter as an Object)
    • Example (Inheriting from EventEmitter)
    • EventEmitter Functions
    • Issue with 'this' Keyword in Callback Functions
    • Handling this Problem
    • Controlling Event Callbacks in the Event Loop
    • Summary
  • CHAPTER 5. ASYNCHRONOUS PROGRAMMING WITH CALLBACKS
    • Synchronous and Asynchronous
    • Callbacks
    • Creating a Callback Function
    • Calling The Callback Function
    • Callback - Another Example
    • Issue with 'this' Keyword in Callback Functions
    • Handling this Problem
    • Handling this Problem – Method 1 (Storing in Another Variable)
    • Handling this Problem – Method 2 (Using Bind Function)
    • Handling this Problem – Method 3 (Using ES6 Arrow Functions)
    • Error Handling without Callback
    • Error Handling with Callback
    • Asynchronous Callback
    • setImmediate() and nextTick()
    • API Example
    • Summary
  • CHAPTER 6. ASYNCHRONOUS PROGRAMMING WITH PROMISES
    • The Problems with Callbacks
    • Introduction to Promises
    • Requirements for Using Promises
    • Creating Promises Manually
    • Calling the Promise-based Function
    • Making APIs that support both callbacks and promises
    • Using APIs that support both callbacks and promises
    • Chaining then Method / Returning a Value or a Promise from then Method
    • Promisifying Callbacks with Bluebird
    • Using Bluebird
    • Bluebird – List of Useful Functions
    • Benefit of using Bluebird over ES6 for Promisifcation
    • Error Handling in Promise-based asynchronous functions
    • Summary
  • CHAPTER 7. BUILD AND DEPENDENCY MANAGEMENT
    • Introduction
    • Bower Package Manager
    • Managing Packages Using Bower
    • Using Bower Packages
    • Describing Dependency
    • Grunt Build Manager
    • Installing Grunt Components
    • Writing a Grunt Build Script
    • Running Grunt
    • Running the JSHint Task
    • Compiling 'Less' Files
    • Compressing CSS Files
    • Gulp Build Manager
    • Gulp vs. Grunt
    • Installing Gulp Components
    • Writing a Build Script
    • Running Gulp
    • Compiling Less Files
    • Summary
  • CHAPTER 8. BASIC WEB APPLICATION DEVELOPMENT
    • Introduction to the HTTP Module
    • The Request Handler Callback Function
    • The Server Object
    • Example Use of Server Object
    • The Request Object
    • The Response Object
    • Parsing Request Body
    • Serving Static Files
    • The HTTP Client API
    • Making POST/PUT/etc. Requests
    • Where To go from Here?
    • Summary
  • CHAPTER 9. DEBUGGING AND UNIT TESTING
    • Problem Determination Options
    • Using console.log
    • Using the 'debug' Logging Package
    • Configure Logging
    • The 'Node Inspector' Debugger
    • Basic Usage of the Debugger
    • Unit Testing Node.js Applications
    • Getting Setup
    • Writing a Test Script
    • Running Unit Test
    • Testing Asynchronous Code
    • Using the Chai Assert API
    • The Chai Expect API
    • Summary
  • CHAPTER 10. LOGGING IN NODE.JS
    • Logging in Node.js
    • What is Missing?
    • Getting a Little Help with the debug Module
    • Logging with the winston Module
    • Example of Using winston
    • The morgan Module
    • Installing and Using Morgan
    • Examples of morgan Configuration Options
    • Apache Log Output Formats
    • Morgan's Dev Log Output Format
    • Logging for Debugging
    • Summary
  • CHAPTER 11. INTRODUCTION TO EXPRESS
    • Introduction to Express
    • Basic Routing Example
    • Defining Routing Rules
    • Route Path
    • The Response Object
    • Supplying URL Parameters
    • Ordering of Routes
    • Defining Catch All Route
    • Full Example Web Service
    • Summary
  • CHAPTER 12. EXPRESS MIDDLEWARE
    • Introduction to Express Middleware
    • Writing a Middleware Function
    • Binding to a Path
    • Order of Execution
    • Raising Error
    • Handling Error
    • Serving Static Files
    • Handling POST Request Body
    • Enable Response Compression
    • Summary
  • CHAPTER 13. ACCESSING MONGODB FROM NODE.JS
    • Getting Started
    • The Connection URL
    • Obtaining a Collection
    • Inserting Documents
    • Updating a Document
    • Querying for Documents
    • Deleting a Document
    • Connection Pooling
    • Summary
  • CHAPTER 14. JADE TEMPLATE ENGINE
    • Introduction to Jade
    • Using Jade
    • A Simple Template
    • Passing Data to a Template
    • Basic HTML Tag Rendering
    • Rendering Values
    • Conditional Rendering
    • Rendering a List
    • Layout Template
    • Creating a Layout Template
    • Creating a Content Template
    • Summary
  • CHAPTER 15. CLUSTERING AND FAILOVER
    • Process Management
    • Managing the Process Using OS Tools
    • Installing a Service in Windows
    • Create an Upstart Script in Ubuntu
    • Process Management Using forever
    • Clustering Basics
    • Example Clustered Application
    • More About Clustering
    • Child Process Failover
    • Summary
  • LAB EXERCISES
    • Lab 1. Getting Started With Node.js
    • Lab 2. Basics of a Node.js Module
    • Lab 3. Using Node Package Manager (npm)
    • Lab 4. Building Module Dependency
    • Lab 5. Using the Stream API
    • Lab 6. Events in Node.js
    • Lab 7. Asynchronous Programming with Callbacks
    • Lab 8. Asynchronous Programming with Promises
    • Lab 9. Basic Web Application Development
    • Lab 10. Debugging a Node.js Application
    • Lab 11. Introduction to Unit Testing
    • Lab 12. Logging with Morgan
    • Lab 13. Web Service Using Express
    • Lab 14. Using MongoDB
    • Lab 15. Using the Jade Template Engine
    • Lab 16. Clustering a Node.js Application
    • Lab 17. MicroServices with Node
    • Lab 18. Test RESTful API with Supertest
    • Lab 19. Mock RESTful API with Nock

 

Upcoming Classes

Virtual Classroom Live
October 30, 2017

$1,295.00
2 Days    9:00am EST - 5:00pm EST
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date

Prerequisites

No prerequisites needed.

Upcoming Classes

Virtual Classroom Live
October 30, 2017

$1,295.00
2 Days    9:00am EST - 5:00pm EST
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date