Node.js provides a rich library of various JavaScript modules which simplifies the development of web applications using Node.js to a great extend.

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

Node.js training continues to be in demand. Web Age offers support for all your Node.js training needs. Sign up today for one of our instructor led Node.js training.

Our Node.js course continues to be in high demand.

Topics

  • Introduction to Node.js
  • Module and dependency management
  • The file system module
  • Events in Node.js
  • Asynchronous Programming with Callbacks
  • Asynchronous Programming with Promises
  • Build and Dependency Management
  • Basic Web Application Development
  • Debugging and Unit Testing
  • Introduction to Express
  • Express Middleware
  • Accessing MongoDb from Node.js
  • Jade template engine
  • Clustering and failover
  • Microservices with Node.js
  • SuperTest and Nock
  • New features in Node.js version 4,6, and 8

Web Age Node.js Training can be delivered in traditional classroom style format. Web Age Node.js Training course can also be delivered in a synchronous instructor led format.

Prerequisites

Participants should be familiar with JavaScript and Web App concepts

Duration

3 Days

Download Sample Labs Lab Setup Guide

Outline for Node.js Software Development Training

Chapter 1. Introduction to Node.js

  • What Is Node.js?
  • Applications of Node.js
  • Installing Node.js and NPM
  • "Hello, Node World!"
  • How It Works
  • Node.js is 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)
  • The Express Server Framework
  • 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 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
  • Issue with 'this' Keyword in Callback Functions (cont.)
  • 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 Promisification
  • 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. 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 11. 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 12. 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 13. Pug Template Engine

  • Introduction to Pug
  • Using Pug
  • 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 14. 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

Chapter 15. Microservices with Node.js

  • Microservices
  • Microservices with Node.js
  • The Express Package
  • Installing and Using Express
  • Defining Routing Rules in Express
  • Route Path
  • The Response Object
  • A Simple Web Service with Express Example
  • Composite Services
  • Example - Call an API Using a Promise
  • Using the callApi() Function
  • Summary

Chapter 16. Supertest and Nock

  • SuperTest
  • Sample Service
  • Test without a Testing Framework
  • Test with a Testing Framework
  • Using Promises with SuperTest
  • Nock
  • Example
  • Example – Request Body
  • Using Query String
  • Specifying Replies
  • Summary

Chapter 17. Important Node features introduced over the years

  • Node History
  • Node Version Policy
  • LTS Release Schedule
  • Changes in Node.js
  • 'npm' Modules and Native Code
  • Node 4.x
  • Arrow Functions
  • Arrow Functions As Parameters
  • Using 'this' Within Arrow Functions
  • ES2015 Classes
  • Declaring Classes
  • Declaring Instance Methods
  • Accessor Methods
  • Static Methods
  • Inheritance With Classes
  • Generator Functions
  • Generator Example
  • Controlling Generator Execution - next(value)
  • Controlling Generator Execution - return(value)
  • Controlling Generator Execution - throw(exception)
  • Generator Recursion With 'yield*'
  • Tail Call Optimization
  • 'const' and 'let'
  • Variable Scope
  • Shadowing Variables
  • Node 5.x
  • Spread Operator
  • Node 6.x
  • Rest Parameter
  • Node 7.x
  • Node 8.x
  • Node 12.x
  • ES6 Module Support
  • Private Class Fields
  • Node 14.x
  • Diagnostic Reporting
  • Diagnostic Reporting Command Arguments
  • V8 Upgraded to V8.1
  • Nullish Coalescing Operator
  • Optional Chaining
  • Intl.DisplayName
  • Intl.DisplayName (contd.)
  • Summary

Chapter 18. Build and dependency management with npm

  • JS
  • Problems and solutions
  • Package managers
  • npm
  • npm does several things
  • Holds project metadata
  • npm as a package manager
  • npm enables us to install JS packages locally or globally
  • npm manages libraries
  • Note the use of semver here
  • The dependency can be...
  • npm installs libraries in a controlled way
  • npm installs from the Internet
  • Weight
  • npm config files
  • Secure sites that can't use the public npm
  • npm automates running
  • tl;dr

Chapter 19. How to test JavaScript

  • Introduction
  • tl;dr
  • How might you test if new passwords don't match, an error message shows?
  • Thus, many tools have been developed
  • These all use assertions
  • Why would I want a different assertion library?
  • What is unit testing? A unit test tests one unit of work
  • What is NOT unit testing? ... Anything else!
  • Benefits of unit testing
  • Next, what is TDD?
  • Benefits of TDD
  • The Red Phase
  • You want to write positive tests and negative tests
  • The Green Phase
  • Let's see how to do this with Jest
  • Jest is a test runner that's evolved over many years
  • To get Jest, install it with npm
  • We can organize our tests in modules or suites
  • describe()
  • test()
  • Jest's built-in assertions have expectations and matchers
  • The matchers are pretty simple
  • The most basic check is toBeTruthy()
  • How to test for equality
  • toThrow()
  • Setups and teardowns
  • Sharing variables between tests is easy
  • How to test browser things
  • Karma
  • Karma is a browser test runner
  • To run tests, you will tell Karma ...
  • Mocha
  • tl;dr
  • Further study

Lab Exercises

Lab 1. Getting Started With Node.js
Lab 2. Basics of a Node.js Module using ES5 Functions
Lab 3. Basics of a Node.js Module using ES6 Classes
Lab 4. Using Node Package Manager (npm)
Lab 5. Building Module Dependency
Lab 6. Using the Stream API
Lab 7. Events in Node.js
Lab 8. Asynchronous Programming with Callbacks
Lab 9. Asynchronous Programming with Promises
Lab 10. Basic Web Application Development
Lab 11. Debugging a Node.js Application
Lab 12. Introduction to Unit Testing
Lab 13. Logging with Morgan
Lab 14. Web Service Using Express
Lab 15. Using MongoDB
Lab 16. Using the Pug Template Engine
Lab 17. Clustering a Node.js Application
Lab 18. MicroServices with Node
Lab 19. Test RESTful API with Supertest
Lab 20. Mock RESTful API with Nock

12/18/2023 - 12/20/2023
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $1,880.00
Enroll
01/29/2024 - 01/31/2024
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $1,880.00
Enroll
03/04/2024 - 03/06/2024
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $1,880.00
Enroll