Master Node JS, build REST APIs with Node.js, GraphQL APIs, add Authentication, use MongoDB, SQL & much more!
What you’ll learn
- Work with one of the most in-demand web development programming languages
-
Build modern, fast and scalable server-side web applications with NodeJS, databases like SQL or MongoDB and more
-
Understand the NodeJS ecosystem and build server-side rendered apps, REST APIs and GraphQL APIs
Course Curriculum
Introduction | |||
Introduction | 00:00:00 | ||
What is Node.js? | 00:00:00 | ||
Installing Node.js and Creating our First App | 00:00:00 | ||
Understanding the Role & Usage of Node.js | 00:00:00 | ||
Course Outline | 00:00:00 | ||
How To Get The Most Out Of The Course | 00:00:00 | ||
Working with the REPL vs Using FIles | 00:00:00 | ||
Using the Attached Source Code | 00:00:00 | ||
Optionnal: JavaScript - A Quick Refresher | |||
Module Introduction | 00:00:00 | ||
JavaScript in a Nutshell | 00:00:00 | ||
Refreshing the Core Syntax | 00:00:00 | ||
let & const | 00:00:00 | ||
Understanding Arrow Functions | 00:00:00 | ||
Working with Objects, Properties & Methods | 00:00:00 | ||
Arrays & Array Methods | 00:00:00 | ||
Arrays, Objects & Reference Types | 00:00:00 | ||
Understanding Spread & Rest Operators | 00:00:00 | ||
Destructuring | 00:00:00 | ||
Async Code & Promises | 00:00:00 | ||
Template Literals | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Understanding the Basics | |||
Module Introduction | 00:00:00 | ||
How The Web Works | 00:00:00 | ||
Creating a Node Server | 00:00:00 | ||
The Node Lifecycle & Event Loop | 00:00:00 | ||
Controlling the Node.js Process | 00:00:00 | ||
Understanding Requests | 00:00:00 | ||
Sending Responses | 00:00:00 | ||
Request & Response Headers | 00:00:00 | ||
Routing Requests | 00:00:00 | ||
Redirecting Requests | 00:00:00 | ||
Parsing Request Bodies | 00:00:00 | ||
Understanding Event Driven Code Execution | 00:00:00 | ||
Blocking and Non-Blocking Code | 00:00:00 | ||
Node.js – Looking Behind the Scenes | 00:00:00 | ||
Using the Node Modules System | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Time to Practice – The Basics | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Improved Development Workflow and Debugging | |||
Module Introduction | 00:00:00 | ||
Understanding NPM Scripts | 00:00:00 | ||
Installing 3rd Party Packages | 00:00:00 | ||
Global Features vs Core Modules vs Third-Party Modules | 00:00:00 | ||
Using Nodemon for Autorestarts | 00:00:00 | ||
Global & Local npm Packages | 00:00:00 | ||
Understanding different Error Types | 00:00:00 | ||
Finding & Fixing Syntax Errors | 00:00:00 | ||
Dealing with Runtime Errors | 00:00:00 | ||
Logical Errors | 00:00:00 | ||
Using the Debugger | 00:00:00 | ||
Restarting the Debugger Automatically After Editing our App | 00:00:00 | ||
Debugging Node.js in Visual Studio Code | 00:00:00 | ||
Changing Variables in the Debug Console | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with Express.js | |||
Module Introduction | 00:00:00 | ||
What is Express.js? | 00:00:00 | ||
Installing Express.js | 00:00:00 | ||
Adding Middleware | 00:00:00 | ||
How Middleware Works | 00:00:00 | ||
Express.js – Looking Behind the Scenes | 00:00:00 | ||
Handling Different Routes | 00:00:00 | ||
Time to Practice – Express.js | 00:00:00 | ||
Parsing Incoming Requests | 00:00:00 | ||
Limiting Middleware Execution to POST Requests | 00:00:00 | ||
Using Express Router | 00:00:00 | ||
Adding a 404 Error Page | 00:00:00 | ||
Filtering Paths | 00:00:00 | ||
Creating HTML Pages | 00:00:00 | ||
Serving HTML Pages | 00:00:00 | ||
Returning a 404 Page | 00:00:00 | ||
Using a Helper Function for Navigation | 00:00:00 | ||
Styling our Pages | 00:00:00 | ||
Serving Files Statically | 00:00:00 | ||
Time to Practice – Navigation | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with Dynamic Content & Adding Templating Engines | |||
Module Introduction | 00:00:00 | ||
Sharing Data Across Requests & Users | 00:00:00 | ||
Templating Engines – An Overview | 00:00:00 | ||
Installing & Implementing Pug | 00:00:00 | ||
Outputting Dynamic Content | 00:00:00 | ||
Official Pug Docs | 00:00:00 | ||
Converting HTML Files to Pug | 00:00:00 | ||
Adding a Layout | 00:00:00 | ||
Finishing the Pug Template | 00:00:00 | ||
Working with Handlebars | 00:00:00 | ||
Converting our Project to Handlebars | 00:00:00 | ||
Adding the Layout to Handlebars | 00:00:00 | ||
Working with EJS | 00:00:00 | ||
Working on the Layout with Partials | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Time to Practice – Templating Engines | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
The Model View Controler (MVC) | |||
Module Introduction | 00:00:00 | ||
What is the MVC? | 00:00:00 | ||
Adding Controllers | 00:00:00 | ||
Finishing the Controllers | 00:00:00 | ||
Adding a Product Model | 00:00:00 | ||
Storing Data in Files Via the Model | 00:00:00 | ||
Fetching Data from Files Via the Model | 00:00:00 | ||
Refactoring the File Storage Code | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Optional: Enhanching the App | |||
Module Introduction | 00:00:00 | ||
Creating the Shop Structure | 00:00:00 | ||
Working on the Navigation | 00:00:00 | ||
Registering the Routes | 00:00:00 | ||
Storing Product Data | 00:00:00 | ||
Displaying Product Data | 00:00:00 | ||
Editing & Deleting Products | 00:00:00 | ||
Adding Another Item | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Dynamic Routes & Advanced Models | |||
Module Introduction | 00:00:00 | ||
Preparations | 00:00:00 | ||
Applied Changes | 00:00:00 | ||
Adding the Product ID to the Path | 00:00:00 | ||
Extracting Dynamic Params | 00:00:00 | ||
Loading Product Detail Data | 00:00:00 | ||
Rendering the Product Detail View | 00:00:00 | ||
Passing Data with POST Requests | 00:00:00 | ||
Adding a Cart Model | 00:00:00 | ||
Using Query Params | 00:00:00 | ||
Pre-Populating the Edit Product Page with Data | 00:00:00 | ||
Linking to the Edit Page | 00:00:00 | ||
Editing the Product Data | 00:00:00 | ||
Adding the Product-Delete Functionality | 00:00:00 | ||
Deleting Cart Items | 00:00:00 | ||
Displaying Cart Items on the Cart Page | 00:00:00 | ||
Deleting Cart Items | 00:00:00 | ||
Fixing a Delete Product Bug | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
SQL Introduction | |||
Module Introduction | 00:00:00 | ||
Choosing a Database | 00:00:00 | ||
NoSQL Introduction | 00:00:00 | ||
Comparing SQL and NoSQL | 00:00:00 | ||
Setting Up MySQL | 00:00:00 | ||
Connecting our App to the SQL Database | 00:00:00 | ||
Basic SQL & Creating a Table | 00:00:00 | ||
Retrieving Data | 00:00:00 | ||
Fetching Products | 00:00:00 | ||
Fetching Products – Time to Practice | 00:00:00 | ||
Inserting Data Into the Database | 00:00:00 | ||
Fetching a Single Product with the “where” Condition | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Unserstanding Sequelize | |||
Module Introduction | 00:00:00 | ||
What is Sequelize? | 00:00:00 | ||
Connecting to the Database | 00:00:00 | ||
Defining a Model | 00:00:00 | ||
Syncing JS Definitions to the Database | 00:00:00 | ||
Inserting Data & Creating a Product | 00:00:00 | ||
MUST READ: findById() in Sequelize 5 | 00:00:00 | ||
Retrieving Data & Finding Products | 00:00:00 | ||
Getting a Single Product with the “where” Condition | 00:00:00 | ||
Fetching Admin Products | 00:00:00 | ||
Updating Products | 00:00:00 | ||
Deleting Products | 00:00:00 | ||
Creating a User Model | 00:00:00 | ||
Adding a One-To-Many Relationship | 00:00:00 | ||
Creating & Managing a Dummy User | 00:00:00 | ||
Using Magic Association Methods | 00:00:00 | ||
Fetching Related Products | 00:00:00 | ||
One-To-Many & Many-To-Many Relations | 00:00:00 | ||
Creating & Fetching a Cart | 00:00:00 | ||
Adding New Products to the Cart | 00:00:00 | ||
Adding Existing Products & Retrieving Cart Items | 00:00:00 | ||
Deleting Related Items & Deleting Cart Products | 00:00:00 | ||
Adding an Order Model | 00:00:00 | ||
Storing Cartitems as Orderitems | 00:00:00 | ||
Resetting the Cart & Fetching and Outputting Orders | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with NoSQL & Using MongoDB | |||
Module Introduction | 00:00:00 | ||
What is MongoDB? | 00:00:00 | ||
Relations in NoSQL | 00:00:00 | ||
Setting Up MongoDB | 00:00:00 | ||
Installing the MongoDB Driver | 00:00:00 | ||
Creating the Database Connection | 00:00:00 | ||
Finishing the Database Connection | 00:00:00 | ||
Using the Database Connection | 00:00:00 | ||
Creating Products | 00:00:00 | ||
Understanding the MongoDB Compass | 00:00:00 | ||
Fetching All Products | 00:00:00 | ||
Fetching a Single Product | 00:00:00 | ||
Making the “Edit” & “Delete” Buttons Work Again | 00:00:00 | ||
Working on the Product Model to Edit our Product | 00:00:00 | ||
Finishing the “Update Product” Code | 00:00:00 | ||
One Note About Updating Products | 00:00:00 | ||
Deleting Products | 00:00:00 | ||
ixing the “Add Product” Functionality | 00:00:00 | ||
Creating New Users | 00:00:00 | ||
Storing the User in our Database | 00:00:00 | ||
Working on Cart Items & Orders | 00:00:00 | ||
Adding the “Add to Cart” Functionality | 00:00:00 | ||
Storing Multiple Products in the Cart | 00:00:00 | ||
Displaying the Cart Items | 00:00:00 | ||
Fixing a Bug | 00:00:00 | ||
Deleting Cart Items | 00:00:00 | ||
Adding an Order | 00:00:00 | ||
Adding Relational Order Data | 00:00:00 | ||
Getting Orders | 00:00:00 | ||
Removing Deleted Items From the Cart | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Two Adjustments (behind the scenes) | 00:00:00 | ||
Working with Mongoose | |||
Module Introduction | 00:00:00 | ||
What is Mongoose? | 00:00:00 | ||
Connecting to the MongoDB Server with Mongoose | 00:00:00 | ||
Creating the Product Schema | 00:00:00 | ||
Saving Data Through Mongoose | 00:00:00 | ||
Fetching All Products | 00:00:00 | ||
Fetching a Single Product | 00:00:00 | ||
Updating Products | 00:00:00 | ||
Deleting Products | 00:00:00 | ||
Adding and Using a User Model | 00:00:00 | ||
Using Relations in Mongoose | 00:00:00 | ||
One Important Thing About Fetching Relations | 00:00:00 | ||
Working on the Shopping Cart | 00:00:00 | ||
Loading the Cart | 00:00:00 | ||
Deleting Cart Items | 00:00:00 | ||
Creating & Getting Orders | 00:00:00 | ||
Storing All Order Related Data | 00:00:00 | ||
Clearing the Cart After Storing an Order | 00:00:00 | ||
Getting & Displaying the Orders | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Sessions & Cookies | |||
Module Introduction | 00:00:00 | ||
What is a Cookie? | 00:00:00 | ||
The Current Project Status | 00:00:00 | ||
Optional: Creating the Login Form | 00:00:00 | ||
Adding the Request Driven Login Solution | 00:00:00 | ||
Setting a Cookie | 00:00:00 | ||
Manipulating Cookies | 00:00:00 | ||
Configuring Cookies | 00:00:00 | ||
What is a Session? | 00:00:00 | ||
Initializing the Session Middleware | 00:00:00 | ||
Using the Session Middleware | 00:00:00 | ||
Using MongoDB to Store Sessions | 00:00:00 | ||
Sessions & Cookies – A Short Summary | 00:00:00 | ||
Time to Practice – Sessions and Cookies | 00:00:00 | ||
Deleting a Cookie | 00:00:00 | ||
Fixing Some Minor Bugs | 00:00:00 | ||
Making “Add to Cart” Work Again | 00:00:00 | ||
Two Tiny Improvements | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Code Adjustments | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Adding Authentication | |||
Module Introduction | 00:00:00 | ||
hat is Authentication? | 00:00:00 | ||
How is Authentication Implemented? | 00:00:00 | ||
Our Updated Project Status | 00:00:00 | ||
Implementing an Authentication Flow | 00:00:00 | ||
Encrypting Passwords | 00:00:00 | ||
Adding a Tiny Code Improvement | 00:00:00 | ||
Adding the Signin Functionality | 00:00:00 | ||
Working on Route Protection | 00:00:00 | ||
Using Middleware to Protect Routes | 00:00:00 | ||
Understanding CSRF Attacks | 00:00:00 | ||
Using a CSRF Token | 00:00:00 | ||
Adding CSRF Protection | 00:00:00 | ||
Fixing the Order Button | 00:00:00 | ||
Providing User Feedback | 00:00:00 | ||
Optional: Styling Error Messages | 00:00:00 | ||
Finishing the Flash Messages | 00:00:00 | ||
Adding Additional Flash Messages | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Sending Email | |||
Module Introduction | 00:00:00 | ||
How Does Sending Emails Work? | 00:00:00 | ||
Using SendGrid | 00:00:00 | ||
Using Nodemailer to Send an Email | 00:00:00 | ||
Potential Limitation for Large Scale Apps | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Advanced Authentication | |||
Module Introduction | 00:00:00 | ||
Resetting Passwords | 00:00:00 | ||
Implementing the Token Logic | 00:00:00 | ||
Creating the Token | 00:00:00 | ||
Creating the Reset Password Form | 00:00:00 | ||
Ading Logic to Update the Password | 00:00:00 | ||
Why we Need Authorization | 00:00:00 | ||
Adding Authorization | 00:00:00 | ||
Adding Protection to Post Actions | 00:00:00 | ||
Why Editing Fails | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Understanding Validation | |||
Module Introduction | 00:00:00 | ||
Why Should We Use Validation? | 00:00:00 | ||
How to Validate Input? | 00:00:00 | ||
Setup & Basic Validation | 00:00:00 | ||
Using Validation Error Messages | 00:00:00 | ||
Built-In & Custom Validators | 00:00:00 | ||
More Validators | 00:00:00 | ||
Checking For Field Equality | 00:00:00 | ||
Adding Async Validation | 00:00:00 | ||
Time to Practice – Validation | 00:00:00 | ||
Keeping User Input | 00:00:00 | ||
Adding Conditional CSS Classes | 00:00:00 | ||
Adding Validation to Login | 00:00:00 | ||
Sanitizing Data | 00:00:00 | ||
Validating Product Addition | 00:00:00 | ||
Validating Product Editing | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Error Handing | |||
Module Introduction | 00:00:00 | ||
Types of Errors & Error Handling | 00:00:00 | ||
Analyzing the Error Handling in the Current Project | 00:00:00 | ||
Errors – Some Theory | 00:00:00 | ||
Throwing Errors in Code | 00:00:00 | ||
Returning Error Pages | 00:00:00 | ||
Using the Express.js Error Handling Middleware | 00:00:00 | ||
Updating the App | 00:00:00 | ||
Using the Error Handling Middleware Correctly | 00:00:00 | ||
Status Codes | 00:00:00 | ||
Available Status Codes | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
File Upload & Download | |||
Module Introduction | 00:00:00 | ||
Adding a File Picker to the Frontend | 00:00:00 | ||
Handling Multipart Form Data | 00:00:00 | ||
Handling File Uploads with Multer | 00:00:00 | ||
Configuring Multer to Adjust Filename & Filepath | 00:00:00 | ||
Filtering Files by Mimetype | 00:00:00 | ||
Storing File Data in the Database | 00:00:00 | ||
Remove imageUrl from “Add Product” | 00:00:00 | ||
Serving Images Statically | 00:00:00 | ||
Downloading Files with Authentication | 00:00:00 | ||
Setting File Type Headers | 00:00:00 | ||
Restricting File Access | 00:00:00 | ||
Streaming Data vs Preloading Data | 00:00:00 | ||
Using PDFKit for .pdf Generation | 00:00:00 | ||
Generating .pdf Files with Order Data | 00:00:00 | ||
Deleting Files | 00:00:00 | ||
Fixing Invoice Links | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Adding Pagination | |||
Module Introduction | 00:00:00 | ||
Adding Pagination Links | 00:00:00 | ||
Retrieving a Chunk of Data | 00:00:00 | ||
Skip & Limit with SQL | 00:00:00 | ||
Preparing Pagination Data on the Server | 00:00:00 | ||
Adding Dynamic Pagination Buttons | 00:00:00 | ||
Re-Using the Pagination Logic & Controls | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Unserstanding Async Requests | |||
Module Introduction | 00:00:00 | ||
What are Async Requests? | 00:00:00 | ||
Adding Client Side JS Code | 00:00:00 | ||
The JSON Data Format | 00:00:00 | ||
Sending & Handling Background Requests | 00:00:00 | ||
Manipulating the DOM | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Adding Payments | |||
Module Introduction | 00:00:00 | ||
How Payments Work | 00:00:00 | ||
Adding a Checkout Page | 00:00:00 | ||
Using Stripe in Your App | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with REST APIs - The Basics | |||
Module Introduction | 00:00:00 | ||
What are REST APIs and why do we use Them? | 00:00:00 | ||
Accessing Data with REST APIs | 00:00:00 | ||
Understanding Routing & HTTP Methods | 00:00:00 | ||
REST APIs – The Core Principles | 00:00:00 | ||
Creating our REST API Project & Implementing the Route Setup | 00:00:00 | ||
Sending Requests & Responses and Working with Postman | 00:00:00 | ||
REST APIs, Clients & CORS Errors | 00:00:00 | ||
Sending POST Requests | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with REST APIS - The Practical Application | |||
Module Introduction | 00:00:00 | ||
REST APIs & The Rest Of The Course | 00:00:00 | ||
Understanding the Frontend Setup | 00:00:00 | ||
Planning the API | 00:00:00 | ||
Fetching Lists of Posts | 00:00:00 | ||
Adding a Create Post Endpoint | 00:00:00 | ||
Adding Server Side Validation | 00:00:00 | ||
Setting Up a Post Model | 00:00:00 | ||
Storing Posts in the Database | 00:00:00 | ||
Static Images & Error Handling | 00:00:00 | ||
Fetching a Single Post | 00:00:00 | ||
Image Names & Windows | 00:00:00 | ||
Uploading Images | 00:00:00 | ||
Updating Posts | 00:00:00 | ||
Deleting Posts | 00:00:00 | ||
Adding Pagination | 00:00:00 | ||
Adding a User Model | 00:00:00 | ||
Adding User Signup Validation | 00:00:00 | ||
Signing Users Up | 00:00:00 | ||
How Does Authentication Work? | 00:00:00 | ||
Starting with User Login | 00:00:00 | ||
Logging In & Creating JSON Web Tokens (JWTs) | 00:00:00 | ||
Using & Validating the Token | 00:00:00 | ||
Adding Auth Middleware to All Routes | 00:00:00 | ||
Connecting Posts & Users | 00:00:00 | ||
Adding Authorization Checks | 00:00:00 | ||
Clearing Post-User Relations | 00:00:00 | ||
Time to Practice – Working with REST APIs | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Understanding Async Await in Node.js | |||
Module Introduction | 00:00:00 | ||
What is Async Await All About? | 00:00:00 | ||
Transforming “Then Catch” to “Async Await” | 00:00:00 | ||
Time to Practice – Async Await | 00:00:00 | ||
The User Name is Missing! | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Understanding Websockts & Socket.io | |||
Module Introduction | 00:00:00 | ||
What Are Websockets & Why Would You Use Them? | 00:00:00 | ||
Websocket Solutions – An Overview | 00:00:00 | ||
Setting Up Socket.io on the Server | 00:00:00 | ||
Establishing a Connection From the Client | 00:00:00 | ||
Identifying Realtime Potential | 00:00:00 | ||
Sharing the IO Instance Across Files | 00:00:00 | ||
Synchronizing POST Additions | 00:00:00 | ||
Fixing a Bug – The Missing Username | 00:00:00 | ||
Updating Posts On All Connected Clients | 00:00:00 | ||
Sorting Correctly | 00:00:00 | ||
Deleting Posts Across Clients | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Working with GraphQL | |||
Module Introduction | 00:00:00 | ||
What is GraphQL? | 00:00:00 | ||
Understanding the Setup & Writing our First Query | 00:00:00 | ||
Defining a Mutation Schema | 00:00:00 | ||
Adding a Mutation Resolver & GraphiQL | 00:00:00 | ||
Adding Input Validation | 00:00:00 | ||
Handling Errors | 00:00:00 | ||
Connecting the Frontend to the GraphQL API | 00:00:00 | ||
Adding a Login Query & a Resolver | 00:00:00 | ||
Adding Login Functionality | 00:00:00 | ||
Adding a Create Post Mutation | 00:00:00 | ||
Extracting User Data From the Auth Token | 00:00:00 | ||
Sending the “Create Post” Query | 00:00:00 | ||
Fixing a Bug & Adding New Posts Correctly | 00:00:00 | ||
Adding a “Get Post” Query & Resolver | 00:00:00 | ||
Sending “Create Post” and “Get Post” Queries | 00:00:00 | ||
Adding Pagination | 00:00:00 | ||
Uploading Images | 00:00:00 | ||
Fetching the imageUrl | 00:00:00 | ||
Viewing a Single Post | 00:00:00 | ||
Updating Posts | 00:00:00 | ||
Deleting Posts | 00:00:00 | ||
Adding Posts & Pagination | 00:00:00 | ||
Managing the User Status | 00:00:00 | ||
Using Variables | 00:00:00 | ||
Fixing a Pagination Bug | 00:00:00 | ||
Wrap Up | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Deploying our App | |||
Module Introduction | 00:00:00 | ||
Deploying Different Kinds of Apps | 00:00:00 | ||
Deployment Preparations | 00:00:00 | ||
Using Environment Variables | 00:00:00 | ||
Using Production API Keys | 00:00:00 | ||
Setting Secure Response Headers with Helmet | 00:00:00 | ||
Compressing Assets | 00:00:00 | ||
Setting Up Request Logging | 00:00:00 | ||
More on Logging | 00:00:00 | ||
Setting Up a SSL Server | 00:00:00 | ||
Using a Hosting Provider | 00:00:00 | ||
Understanding the Project & the Git Setup | 00:00:00 | ||
A Deployment Example with Heroku | 00:00:00 | ||
Storing User-generated Files on Heroku | 00:00:00 | ||
Deploying APIs | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Node.js as Build tools & Using npm | |||
Module Introduction | 00:00:00 | ||
npm & Node.js | 00:00:00 | ||
Using npm | 00:00:00 | ||
Versioning in package.json | 00:00:00 | ||
What is a Build Tool? | 00:00:00 | ||
Using Node.js in Build Processes | 00:00:00 | ||
Useful Resources & Links | 00:00:00 | ||
Roundup | |||
Course Roundup | 00:00:00 | ||
Course Slides | 00:00:00 |
Course Reviews
No Reviews found for this course.
28 STUDENTS ENROLLED