651-905-3729 Microsoft Silver Learning Partner EC Counsel Reseller compTIA Authorized Partner

MERN (MongoDB, Express, React, and Node.JS] JavaScript Technology Stack Training

3 Days

Description

MERN [MongoDB, Express, React, and Node.JS] represents a new breed of software platforms that creatively leverage a stack of production-ready technologies centered on JavaScript. This intensive training course introduces the students to the essential concepts, design principles, idioms, and techniques behind the efficient use of the MERN JavaScript Technology Stack. Upon completion of this training course, students will have solid understanding of MERNS’ value proposition; they will also gain practical experience working with all the components of the MERN stack. This high-octane training course is supplemented by hands-on labs that help the students reinforce their theoretical knowledge of the learned material.

Our Mean Stack course is meant for developers, technical leads, and software architects.

SEE PREREQUISITES TO ENSURE YOU ARE PREPARED TO GET THE MOST OUT OF THIS CLASS 

TOPICS

  • The React Framework
  • Essential MongoDB
  • Node.js
  • Debugging and Unit testing on Node.js
  • Express
  • Full-stack application projects

AUDIENCE

Developers, Technical Leads, and Software Architects.

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a MERN (MongoDB, Express, React, and Node.JS] JavaScript Technology Stack Training class.

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

MERN JavaScript Technology Stack Training

Chapter 1. React Overview

  • What is React?
  • What's in a Name?
  • React Component Model
  • What React Is Not
  • What You Will Not Find in React
  • Motivation for Creating React
  • A React JavaScript Example
  • One-Way Data Flow
  • JSX
  • A JSX Example
  • The Virtual (Mock) DOM
  • Only Sub-components that Actually Change are Re-Rendered
  • React Libraries
  • Summary

Chapter 2. ES6 in a Nutshell

  • What is ES6?
  • ES6 Features
  • Using ES6
  • Transpiling
  • Major Syntax Changes
  • let and const
  • Variable Scope
  • Shadowing Variables
  • Arrow Functions
  • Arrow Functions As Parameters
  • Using 'this' Within Arrow Functions
  • Template Literals
  • Spread Operator
  • ES6 Classes
  • Declaring Classes
  • Declaring Instance Methods
  • Accessor Methods
  • Static Methods
  • Inheritance With Classes
  • Summary

Chapter 3. Babel Command-Line Interface

  • Babel Transpiler
  • Usage Options
  • Presets and Plug-ins
  • Babel CLI Installation
  • Babel Configuration
  • Running Babel Command-Line
  • A Basic ES6 Development Setup with Babel
  • Test the Babel Development Setup
  • Adding React to the Development Setup
  • Create a Minimal React App - Index.html
  • Create a Minimal React App - app.js

Chapter 4. Basic Components and JSX

  • What is JSX?
  • JSX Transpilation to React Code Example
  • Running the Transpiled Code
  • Babel
  • The Babel Runtime JavaScript Library
  • Script Import Skeleton Code
  • Playing Around in CodePen
  • React Components
  • Ways to Create UI Components
  • Creating a Functional Component Example
  • Component Names Must Be Capitalized
  • Creating a React Class-Based Component in ES5
  • The render Method
  • Creating a UI Component Using ES6 Class Notation
  • Using ES6 Classes with React
  • Which UI Component Creation Syntax Should I Use?
  • Components vs Elements
  • Elements Are Immutable
  • Properties
  • Property Naming Convention
  • Properties Default to 'True'
  • Spread Attributes (an ES6 Feature)
  • Expressions
  • Fragments
  • Summary

Chapter 5. React Component Concepts

  • Nesting JSX Elements
  • Example of JSX Nesting
  • Comments in JSX Code
  • JSX Escapes Values
  • Working with Lists of Items
  • Keys in Lists
  • Example List With Key
  • Container vs. Presentational Components
  • State
  • Types of State Data
  • State Hierarchy
  • Lifting State Up
  • Props vs. State
  • Pass Down a Function
  • Immutability
  • Immutability – Why?
  • Virtual DOM and State
  • Setting state
  • Updating Input fields
  • Passing Props to Components
  • Passing Functions to Components
  • Event Handling
  • Event Handler Example
  • Event Binding - DOs
  • Event Binding – Don'ts
  • Passing Parameters to Event Handlers
  • App Development Workflow – 1/3
  • App Development Workflow – 2/3
  • App Development Workflow – 3/3
  • Summary

Chapter 6. React Components with ES6 Classes

  • Classes in ES6
  • Functional Components
  • Extending React.Component
  • The render() Method
  • state
  • props
  • defaultProps
  • propTypes
  • The Component Lifecycle
  • componentWillMount()
  • componentDidMount()
  • setState( newStateValue )
  • Summary

Chapter 7. React Router

  • Routing and Navigation
  • react-router
  • Creating a react-router based project
  • A Basic Routed Component
  • Router vs. BrowserRouter
  • The Route component
  •  
  • Redirect Route
  • Navigating with
  • Navigating with
  • Route Parameters
  • Retrieving Route Parameters
  • QueryString Parameters
  • Using Router with Redux
  • Summary

Chapter 8. Building React Apps with Redux

  • Redux
  • Redux Terminology
  • Redux Principles
  • Redux: Actions
  • Redux Action Types
  • Action Creators
  • Dispatching Actions
  • Data Flow Basics
  • Redux Reducers
  • Pure Functions
  • Reducer Example
  • Returning Default State
  • Creating a Development Environment with create-react-app
  • Using Redux with React
  • Initializing the Store
  • Immutability
  • Benefits of Immutable State
  • Mutability of Standard types
  • Copying Objects in JavaScript
  • Copying Arrays in JavaScript
  • One Store - Multiple Reducers
  • Combining Reducers
  • Components and Redux
  • The React-Redux Package
  • Wrapping App with Provider
  • mapStateToProps
  • mapDispatchToProps
  • Using Mapped Properties and Methods
  • Wrapping Components with Connect
  • Configure Store
  • Programming Advice - MultiTab Console
  • Summary

Chapter 9. Unit Testing React with Jest

  • Jest Testing Framework
  • Features
  • Snapshot Testing
  • Code Coverage
  • Interactive Mode
  • Projects created with
  • create-react-app
  • Installing Jest Manually
  • Run Test
  • Unit Tests
  • Anatomy of a Unit Test
  • Common Matchers
  • Combining Tests
  • Running Tests
  • Testing async code with done
  • Testing Promise Based Async Code
  • Setup and Teardown
  • A Simple Snapshot Test
  • react-test-renderer
  • ReactTestUtils
  • Enzyme
  • Summary

Chapter 10. Introduction to MongoDB

  • MongoDB
  • MongoDB Features
  • MongoDB on the Web
  • Positioning of MongoDB
  • MongoDB Applications
  • MongoDB Data Model
  • MongoDB Limitations
  • MongoDB Use Cases
  • MongoDB Query Language (QL)
  • The CRUD Operations
  • The
  • find
  • Method
  • The
  • findOne
  • Method
  • A MongoDB Query Language (QL) Example
  • Inserts
  • MongoDB vs Apache CouchDB
  • Summary

Chapter 11. MongoDB Data Model

  • The BSON Data Format
  • Database Terminology
  • MongoDB Data Model
  • The _id Primary Key Filed Considerations
  • Indexes
  • (Traditional) Data Modeling in RDBMS
  • Data Modeling in MongoDB
  • An Example of a Data Model in MongoDB
  • MongoDB Data Modeling
  • A Sample JSON Document Matching the Schema
  • To Normalize or Denormalize?
  • MongoDB Limitations
  • Data Lifecycle Management
  • Data Lifecycle Management: TTL
  • Data Lifecycle Management: Capped Collections
  • Summary

Chapter 12. MongoDB Architecture

  • MongoDB Nexus Architecture
  • Blending the Best of Both Worlds
  • What Makes MongoDB Fast?
  • Pluggable Storage Engines
  • Data Sharding
  • Sharding in MongoDB
  • Data Replication
  • A Sample Sharded Cluster Diagram
  • GridFS
  • Getting a File from GridFS
  • MongoDB Security
  • Authentication
  • Data and Network Encryption
  • Summary

Chapter 13. MongoDB Administration

  • The Admin Shell
  • Getting Help
  • Admin Commands
  • Starting MongoDB
  • The mongod Web UI
  • Running MongoDB JavaScript Scripts
  • Shell Helper to JavaScript Equivalent Map
  • A MongoDB Script Example
  • Connecting to MongoDB
  • User Authentication
  • Authentication Options
  • Import / Export Operations
  • MongoDB Extended JSON and Strict Mode
  • Examples of Strict Mode Encoding
  • Examples of Data Import / Export
  • The Robo3T (formerly RoboMongo) Tool
  • Robo3T Connections
  • Connection Manager
  • Viewing Databases, Collections and Documents
  • Edit Capabilities
  • Admin Shell
  • Summary

Chapter 14. Working with Data in MongoDB

  • Reading Data in MongoDB
  • The Query Interface
  • Query Syntax is Driver-Specific
  • Projections
  • Query and Projection Operators
  • MongoDB Query to SQL Select Comparison
  • Cursors
  • Cursor Expiration
  • Writing Data in MongoDB
  • An Insert Operation Example
  • The Update Operation
  • An Update Operation Example
  • A Remove Operation Example
  • Limiting Return Data
  • Data Sorting
  • Aggregating Data
  • Aggregation Stages
  • Accumulators
  • An Example of an Aggregation Pipe-line
  • Map-Reduce
  • Summary

Chapter 15. Indexes in MongoDB

  • Indexes in MongoDB
  • Creating an Index
  • Listing Existing Indexes
  • The Sort Order
  • Using the Explain() Method
  • Main Index Types
  • The _id Field
  • Single and Compound Indexes
  • Multikey Indexes
  • Other Index Types
  • Index Properties
  • Examples of Creating Indexes with Index Properties
  • Summary

Chapter 16. 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 17. 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 18. 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 19. 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 20. 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 21. 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 22. 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 23. 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 24. 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 1. Setting Up a React Development Environment
Lab 2. Basic React Components
Lab 3. More React Component Concepts
Lab 4. ES6 React Components
Lab 5. React Router Application
Lab 6. React Redux Application
Lab 7. Learning the MongoDB Lab Environment
Lab 8. The MongoDB Database Operations
Lab 9. The MongoDB Admin Shell
Lab 10. Import Export Operations in MongoDB
Lab 11. Working with Data in MongoDB
Lab 12. Debugging a Node.js Application
Lab 13. Introduction to Unit Testing
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. MERN Project 1
Lab 19. MERN Project 2 - React App Using Redux

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a MERN (MongoDB, Express, React, and Node.JS] JavaScript Technology Stack Training class.

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

To succeed in this training, participants should have experience with:

  • JavaScript programming (ES6 or higher) at an intermediate level including some exposure to exception handling, promises, and debugging Web applications in the browser environment.
  • Core front end technologies such as HTTP, HTML, CSS, DOM and browser development tools

Conceptual knowledge of data base systems and web application design is assumed.

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a MERN (MongoDB, Express, React, and Node.JS] JavaScript Technology Stack Training class.

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