Welcome
  • Welcome to the Class!
  • Grab the PDF Guide
Installing and Exploring Node.js
  • Section Intro: Installing and Exploring Node.js
  • Installing Node.js and Visual Studio Code
  • What is Node.js?
  • Why Should I Use Node.js?
  • Your First Node.js Script
Node.js Module System (Notes App)
  • Section Intro: Node.js Module System
  • Importing Node.js Core Modules
  • Importing Your Own Files
  • Importing npm Modules
  • Printing in Color
  • Global npm Modules and nodemon
File System and Command Line Args (Notes App)
  • Section Intro: File System and Command Line Args
  • Getting Input from Users
  • Argument Parsing with Yargs: Part I
  • Argument Parsing with Yargs: Part II
  • Storing Data with JSON
  • Adding a Note
  • Removing a Note
  • ES6 Aside: Arrow Functions
  • Refactoring to Use Arrow Functions
  • Listing Notes
  • Reading a Note
Debugging Node.js (Notes Apps)
  • Section Intro: Debugging Node.js
  • Debugging Node.js
  • Error Messages
Asynchronous Node.js (Weather App)
  • Section Intro: Asynchronous Node.js
  • Asynchronous Basics
  • Call Stack, Callback Queue, and Event Loop
  • Making HTTP Requests
  • Customizing HTTP Requests
  • An HTTP Request Challenge
  • Handling Errors
  • The Callback Function
  • Callback Abstraction
  • Callback Abstraction Challenge
  • Callback Chaining
  • ES6 Aside: Object Property Shorthand and Destructuring
  • Destructuring and Property Shorthand Challenge
  • Bonus: HTTP Requests Without a Library
Web Servers (Weather App)
  • Section Intro: Web Servers
  • Hello Express!
  • Serving up HTML and JSON
  • Serving up Static Assets
  • Serving up CSS, JS, Images, and More
  • Dynamic Pages with Templating
  • Customizing the Views Directory
  • Advanced Templating
  • 404 Pages
  • Styling the Application: Part I
  • Styling the Application: Part II
Accessing API from Browser (Weather App)
  • Section Intro: Accessing API from Browser
  • The Query String
  • Building a JSON HTTP Endpoint
  • ES6 Aside: Default Function Parameters
  • Browser HTTP Requests with Fetch
  • Creating a Search Form
  • Wiring up the User Interface
Application Deployment (Weather App)
  • Section Intro: Application Deployment
  • Joining Heroku and GitHub
  • Version Control with Git
  • Exploring Git
  • Integrating Git
  • Setting up SSH Keys
  • Pushing Code to GitHub
  • Deploying Node.js to Heroku
  • New Feature Deployment Workflow
  • Avoiding Global Modules
MongoDB and Promises (Task App)
  • Section Intro: Databases and Advanced Asynchronous Development
  • MongoDB and NoSQL Databases
  • Installing MongoDB on macOS and Linux
  • Installing MongoDB on Windows
  • Installing Database GUI Viewer
  • Connecting and Inserting Documents
  • Inserting Documents
  • The ObjectID
  • Querying Documents
  • Promises
  • Updating Documents
  • Deleting Documents
REST APIs and Mongoose (Task App)
  • Section Intro: REST APIs and Mongoose
  • Setting up Mongoose
  • Creating a Mongoose Model
  • Data Validation and Sanitization: Part I
  • Data Validation and Sanitization: Part II
  • Structuring a REST API
  • Installing Postman
  • Resource Creation Endpoints: Part I