Module 1: Introduction to Node.js
- Introduction to Node.js
- What is Node.js?
- Installing Visual Studio and Node.js
- Why Node.js?
- Writing 'Hello World' script in Node.js
Module 2: Module system & NPM in Node.js
- Introduction to Module system in Node.js
- Import core modules in Node.js
- Importing own files in Node.js
- Using global NPM modules and nodemon
Module 3: Node.js File System and Command Line Arguments
- Introduction to File System and Command Line Arguments
- Receive Input from Users
- Parse Arguments with Yargs
- Storing data with JSON
- Adding and removing notes
- Listing and reading notes
- Arrow Functions and Refactoring
Module 4: Error Handling and Debugging in Node.js
- Debugging Node.js
- Error Handling
- Error Messages
Module 5: 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 Chaining
- Destructuring and Property Shorthand
Module 6: 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
Module 7: 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
Module 8: Application Deployment
- Joining Heroku and GitHub
- Version Control with Git
- Exploring Integrating Git
- Setting up SSH Keys
- Pushing Code to GitHub
- Deploying Node.js to Heroku
- New Feature Deployment Workflow
- Avoiding Global Modules
Module 9: Databases and Advanced Asynchronous
- Development
- MongoDB and NoSQL Databases
- Installing MongoDB on Windows
- Installing Database GUI Viewer
- Connecting and Inserting Documents
- Inserting Documents
- The ObjectID
- Querying, Updating & Deleting Documents
- Promises
Module 10: REST APIs and Mongoose
- Setting up Mongoose
- Creating a Mongoose Model
- Data Validation and Sanitization
- Structuring a REST API
- Installing Postman
- Resource Creation and Reading Endpoints
- Promise Chaining
- Async/Await
- Integrating Async/Await
- Resource Updating & Deleting Endpoints
- Separate Route Files
Module 11: API Authentication and Security
- Securely Storing Passwords
- Logging in Users
- JSON Web Tokens
- Generating Authentication Tokens
- Express Middleware
- Accepting Authentication Tokens
- Advanced Postman
- Logging Out
- Hiding Private Data
- Authenticating User Endpoints
- The User/Task Relationship
- Authenticating Task Endpoints
- Cascade Delete Tasks
Module 12: Sorting, Pagination, and Filtering
- Working with Timestamps
- Filtering Data
- Paginating Data
- Sorting Data
Module 13: File Uploads
- Adding Support for File Uploads
- Validating File Uploads
- Handling Express Errors
- Adding Images to User Profile
- Serving up Files
- Auto-Cropping and Image Formatting
Module 14: Testing Node.js
- Jest Testing Framework
- Writing Tests and Assertions
- Writing Your Own Tests
- Testing Asynchronous Code
- Testing an Express Application
- Jest Setup and Teardown
- Testing with Authentication
- Advanced Assertions
- Mocking Libraries
- Setup Task Test Suite
- Testing with Task Data
Module 15: Real-Time Web Applications with Socket.io
- Getting Started with App Build using Socket.io
- Socket.io Events
- Broadcasting Events
- Sharing Your Location
- Event Acknowledgements
- Form and Button States
- Rendering Messages
- Working with Time
- Socket.io Rooms
- Deploying the Application