Description
In this course, you will learn :
- Completely refilmed for 3rd edition.
- Create, test, and deploy Node apps.
- Create Express web servers as well as APIs.
- Mongoose and MongoDB are used to store data.
- Use the most recent ES6/ES7 JavaScript.
- Deploy your Node apps to the production environment.
- SocketIO allows you to build real-time web apps.
Syllabus :
1. 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
2. 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)
- Getting Input from Users
- Argument Parsing with Yargs
- Storing Data with JSON
- Adding a Note
- Removing a Note
- ES6 Aside: Arrow Functions
- Refactoring to Use Arrow Functions
- Listing Notes
- Reading a Note
3. Debugging Node.js (Notes Apps)
- Debugging Node.js
- Error Messages
4. Asynchronous Node.js (Weather App)
- 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
5. Web Servers (Weather App)
- 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
6. Accessing API from Browser (Weather App)
- 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
7. Application Deployment (Weather App)
- 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
8. MongoDB and Promises (Task App)
- 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
9. REST APIs and Mongoose (Task App)
- Setting up Mongoose
- Creating a Mongoose Model
- Data Validation and Sanitization
- Structuring a REST API
- Installing Postman
- Resource Creation Endpoints
- Resource Reading Endpoints
- Promise Chaining
- Promise Chaining Challenge
- Async/Await
- Integrating Async/Await
- Resource Updating Endpoints
- Resource Deleting Endpoints
- Separate Route Files
10. API Authentication and Security (Task App)
- 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
11. Sorting, Pagination, and Filtering (Task App)
- Working with Timestamps
- Filtering Data
- Paginating Data
- Sorting Data
12. File Uploads (Task App)
- Adding Support for File Uploads
- Validating File Uploads
- Validation Challenge
- Handling Express Errors
- Adding Images to User Profile
- Serving up Files
- Auto-Cropping and Image Formatting
13. Sending Emails (Task App)
- Exploring SendGrid
- Sending Welcome and Cancelation Emails
- Environment Variables
- Creating a Production MongoDB Database
- Heroku Deployment
14. Testing Node.js (Task App)
- 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
- Wrapping up User Tests
- Setup Task Test Suite
- Testing with Task Data
15. Real-Time Web Applications with Socket.io (Chat App)
- Creating the Chat App Project
- WebSockets
- Getting Started with Socket.io
- Socket.io Events
- Socket.io Events Challenge
- Broadcasting Events
- Sharing Your Location
- Event Acknowledgements
- Form and Button States
- Rendering Messages
- Rendering Location Messages
- Working with Time
- Timestamps for Location Messages
- Styling the Chat App
- Join Page
- Socket.io Rooms
- Storing Users
- Tracking Users Joining and Leaving
- Sending Messages to Rooms
- Rendering User List
- Automatic Scrolling
- Deploying the Chat Application