Skip to navigation
Skip to navigation
Skip to search form
Skip to login form
Skip to footer
Skip to main content
Accessibility options
Accessibility profiles
Visual impairment
Seizure and epileptic
Color vision deficiency
ADHD
Learning
Content adjustments
Readable font
Highlight titles
Highlight links
Stop animations
Text size
+
+ +
+ + +
Line height
+
+ +
+ + +
Text spacing
+
+ +
+ + +
Color adjustments
Dark contrast
Light contrast
High contrast
High saturation
Low saturation
Monochrome
Orientation adjustments
Reading guide
Reading Mask
Big black cursor
Big white cursor
Email: it@huph.edu.vn
Email: it@huph.edu.vn
Các khóa học
Đổi giao diện
Giao diện cũ
Giao diện mới
en
English
Công nghệ
Web Design
NodeJS - The Complete Guide (MVC, REST APIs, GraphQL, Deno)
0 students
Last updated
Apr 2024
Enrol now
Overview
Course content
Instructors
About the course
Show more...
Course content
Sections:
36
•
Activities:
0
•
Resources:
468
Expand all
Section 1
Introduction
001-Introduction
002-What is Node js
004-Installing Node js and Creating our First App
005-Understanding the Role Usage of Node js
006-Course Outline
007-How To Get The Most Out Of The Course
008-Working with the REPL vs Using Files
Section 2
Optional: JavaScript - A Quick Refresher
010-Module Introduction
011-JavaScript in a Nutshell-
012-Refreshing the Core Syntax
013-let const
014-Understanding Arrow Functions
015-Working with Objects Properties Methods
016-Arrays Array Methods
017-Arrays Objects Reference Types
018-Understanding Spread Rest Operators
019-Destructuring
020-Async Code Promises
022-Wrap Up
Section 3
Understanding the Basics
024-Module Introduction
025-How The Web Works
026-Creating a Node Server
027-The Node Lifecycle Event Loop
029-Understanding Requests
030-Sending Responses
032-Routing Requests
033-Redirecting Requests
034-Parsing Request Bodies
035-Understanding Event Driven Code Execution
036-Blocking and Non Blocking Code
037-Node js Looking Behind the Scenes
038-Using the Node Modules System
039-Wrap Up
Section 4
Improved Development Workflow and Debugging
042-Module Introduction
043-Understanding NPM Scripts
044-Installing 3rd Party Packages
046-Using Nodemon for Autorestarts
048-Understanding different Error Types
049-Finding Fixing Syntax Errors
050-Dealing with Runtime Errors
051-Logical Errors
052-Using the Debugger
055-Changing Variables in the Debug Console
056-Wrap Up
Section 5
Working with Express.js
058-Module Introduction
059-What is Express js
060-Installing Express js
061-Adding Middleware
062-How Middleware Works
063-Express js Looking Behind the Scenes
064-Handling Different Routes
066-Parsing Incoming Requests
067-Limiting Middleware Execution to POST Requests
068-Using Express Router
069-Adding a 404 Error Page
070-Filtering Paths
071-Creating HTML Pages
072-Serving HTML Pages
073-Returning a 404 Page
075-Using a Helper Function for Navigation
076-Styling our Pages
077-Serving Files Statically
079-Wrap Up
Section 6
Working with Dynamic Content & Adding Templating Engines
081-Module Introduction
082-Sharing Data Across Requests Users
083-Templating Engines An Overview
084-Installing Implementing Pug
085-Outputting Dynamic Content
087-Converting HTML Files to Pug
081-Module Introduction
088-Adding a Layout
089-Finishing the Pug Template
091-Working with Handlebars
092-Converting our Project to Handlebars
093-Adding the Layout to Handlebars
094-Working with EJS
095-Working on the Layout with Partials
096-Wrap Up
098-OPTIONAL Assignment Solution
Section 7
The Model View Controller (MVC)
100-Module Introduction
101-What is the MVC
102-Adding Controllers
103-Finishing the Controllers
105-Storing Data in Files Via the Model
106-Fetching Data from Files Via the Model
107-Refactoring the File Storage Code
108-Wrap Up
Section 8
Optional: Enhancing the App
110-Module Introduction-
111-Creating the Shop Structure
112-Working on the Navigation
113-Registering the Routes
115-Displaying Product Data
116-Editing Deleting Products
117-Adding Another Item
Section 9
Dynamic Routes & Advanced Models
119-Module Introduction
120-Preparations
122-Adding the Product ID to the Path
123-Extracting Dynamic Params
124-Loading Product Detail Data
125-Rendering the Product Detail View
126-Passing Data with POST Requests
127-Adding a Cart Model
128-Using Query Params
129-Pre Populating the Edit Product Page with Data
130-Linking to the Edit Page
131-Editing the Product Data
132-Adding the Product Delete Functionality
133-Deleting Cart Items
134-Displaying Cart Items on the Cart Page
135-Deleting Cart Items
136-Fixing a Delete Product Bug
137-Wrap Up
Section 10
SQL Introduction
139-Module Introduction
140-Choosing a Database
141-NoSQL Introduction
142-Comparing SQL and NoSQL
143-Setting Up MySQL
144-Connecting our App to the SQL Database
145-Basic SQL Creating a Table
146-Retrieving Data
147-Fetching Products
148-Fetching Products Time to Practice
149-Inserting Data Into the Database
150-Fetching a Single Product with the where Condition
151-Wrap Up
Section 11
Understanding Sequelize
153-Module Introduction
154-What is Sequelize
155-Connecting to the Database
161-Getting a Single Product with the where Condition
157-Syncing JS Definitions to the Database
158-Inserting Data Creating a Product
160-Retrieving Data Finding Products
162-Fetching Admin Products
163-Updating Products
164-Deleting Products
165-Creating a User Model
166-Adding a One To Many Relationship
167-Creating Managing a Dummy User
168-Using Magic Association Methods
169-Fetching Related Products
170-One To Many Many To Many Relations
171-Creating Fetching a Cart
172-Adding New Products to the Cart
173-Adding Existing Products Retrieving Cart Items
174-Deleting Related Items Deleting Cart Products
175-Adding an Order Model-
176-Storing Cartitems as Orderitems
177-Resetting the Cart Fetching and Outputting Orders
178-Wrap Up
Section 12
Working with NoSQL & Using MongoDB
180-Module Introduction
181-What is MongoDB
182-Relations in NoSQL
183-Setting Up MongoDB
184-Installing the MongoDB Driver
185-Creating the Database Connection
186-Finishing the Database Connection
188-Creating Products
189-Understanding the MongoDB Compass
190-Fetching All Products
191-Fetching a Single Product
192-Making the Edit Delete Buttons Work Again
193-Working on the Product Model to Edit our Product
194-Finishing the Update Product Code
195-One Note About Updating Products
196-Deleting Products
197-Fixing the Add Product Functionality
198-Creating New Users
199-Storing the User in our Database
200-Working on Cart Items Orders
201-Adding the Add to Cart Functionality
202-Storing Multiple Products in the Cart
204-Fixing a Bug
205-Deleting Cart Items
206-Adding an Order
207-Adding Relational Order Data
208-Getting Orders-git.ir.mp4]
209-Removing Deleted Items From the Cart
210-Wrap Up
Section 13
Working with Mongoose
213-Module Introduction
214-What is Mongoose
215-Connecting to the MongoDB Server with Mongoose-
216-Creating the Product Schema
217-Saving Data Through Mongoose
218-Fetching All Products
219-Fetching a Single Product
220-Updating Products
221-Deleting Products
222-Adding and Using a User Model
223-Using Relations in Mongoose
224-One Important Thing About Fetching Relations
225-Working on the Shopping Cart
227-Deleting Cart Items
229-Storing All Order Related Data
230-Clearing the Cart After Storing an Order
231-Getting Displaying the Orders
232-Wrap Up
Section 14
Sessions & Cookies
234-Module Introduction
235-What is a Cookie
236-The Current Project Status
237-Optional Creating the Login Form
238-Adding the Request Driven Login Solution
239-Setting a Cookie
240-Manipulating Cookies
241-Configuring Cookies
242-What is a Session
243-Initializing the Session Middleware
244-Using the Session Middleware
245-Using MongoDB to Store Sessions
246-Sessions Cookies A Short Summary
248-Deleting a Cookie
249-Fixing Some Minor Bugs
250-Making Add to Cart Work Again
251-Two Tiny Improvements
252-Wrap Up
Section 15
Adding Authentication
255-Module Introduction
256-What is Authentication
257-How is Authentication Implemented
258-Our Updated Project Status
259-Implementing an Authentication Flow
260-Encrypting Passwords-
261-Adding a Tiny Code Improvement
262-Adding the Signin Functionality
263-Working on Route Protection
264-Using Middleware to Protect Routes
265-Understanding CSRF Attacks
266-Using a CSRF Token
267-Adding CSRF Protection
268-Fixing the Order Button
269-Providing User Feedback
270-Optional Styling Error Messages
271-Finishing the Flash Messages
272-Adding Additional Flash Messages
273-Wrap Up
Section 16
Sending Emails
275-Module Introduction
276-How Does Sending Emails Work
277-Using SendGrid
278-Using Nodemailer to Send an Email
279-Potential Limitation for Large Scale Apps
Section 17
Advanced Authentication
281-Module Introduction
282-Resetting Passwords
283-Implementing the Token Logic
284-Creating the Token
285-Creating the Reset Password Form
286-Adding Logic to Update the Password
287-Why we Need Authorization
288-Adding Authorization
289-Adding Protection to Post Actions
290-Why Editing Fails
291-Wrap Up
Section 18
Understanding Validation
293-Module Introduction
294-Why Should We Use Validation
295-How to Validate Input
296-Setup Basic Validation
297-Using Validation Error Messages
298-Built In Custom Validators
299-More Validators
300-Checking For Field Equality
301-Adding Async Validation
303-Keeping User Input
304-Adding Conditional CSS Classes
305-Adding Validation to Login
306-Sanitizing Data
307-Validating Product Addition
308-Validating Product Editing
309-Wrap Up
Section 19
Error Handling
311-Module Introduction
312-Types of Errors Error Handling
313-Analyzing the Error Handling in the Current Project
314-Errors Some Theory
315-Throwing Errors in Code
316-Returning Error Pages
317-Using the Express js Error Handling Middleware
318-Updating the App
319-Using the Error Handling Middleware Correctly
320-Status Codes
322-Wrap Up
Section 20
File Upload & Download
324-Module Introduction
325-Adding a File Picker to the Frontend
326-Handling Multipart Form Data
327-Handling File Uploads with Multer
328-Configuring Multer to Adjust Filename Filepath
329-Filtering Files by Mimetype
330-Storing File Data in the Database
332-Serving Images Statically
333-Downloading Files with Authentication
334-Setting File Type Headers
335-Restricting File Access
336-Streaming Data vs Preloading Data
337-Using PDFKit for pdf Generation
338-Generating pdf Files with Order Data
339-Deleting Files
340-Fixing Invoice Links
341-Wrap Up
Section 21
Adding Pagination
343-Module Introduction
344-Adding Pagination Links
345-Retrieving a Chunk of Data
347-Preparing Pagination Data on the Server
348-Adding Dynamic Pagination Buttons
349-Re Using the Pagination Logic Controls
350-Wrap Up
Section 22
Understanding Async Requests
352-Module Introduction
353-What are Async Requests
354-Adding Client Side JS Code
356-Sending Handling Background Requests
357-Manipulating the DOM
Section 23
Adding Payments
359-Module Introduction
360-How Payments Work
359-Module Introduction
362-Using Stripe in Your App
Section 24
Working with REST APIs - The Basics
364-Module Introduction
365-What are REST APIs and why do we use Them
366-Accessing Data with REST APIs
367-Understanding Routing HTTP Methods
368-REST APIs The Core Principles
369-Creating our REST API Project Implementing the Route Setup
370-Sending Requests Responses and Working with Postman-
371-REST APIs Clients CORS Errors
372-Sending POST Requests
373-Wrap Up
Section 25
Working with REST APIs - The Practical Application
375-Module Introduction
376-REST APIs The Rest Of The Course
377-Understanding the Frontend Setup
378-Planning the API
379-Fetching Lists of Posts
380-Adding a Create Post Endpoint
381-Adding Server Side Validation
382-Setting Up a Post Model
383-Storing Posts in the Database
384-Static Images Error Handling
385-Fetching a Single Pos
387-Uploading Images
388-Updating Posts
390-Adding Pagination-
391-Adding a User Model-
393-Signing Users Up
394-How Does Authentication Work
395-Starting with User Login
396-Logging In Creating JSON Web Tokens JWT
389-Deleting Posts
397-Using Validating the Token
399-Connecting Posts Users
400-Adding Authorization Checks
399-Connecting Posts Users
403-Wrap Up
Section 26
Understanding Async Await in Node.js
405-Module Introduction
406-What is Async Await All About
407-Transforming Then Catch to Async Await
408-Top level await
411-Wrap Up
Section 27
Understanding Websockets & Socket.io
413-Module Introduction
414-What Are Websockets Why Would You Use Them
415-Websocket Solutions An Overview
416-Setting Up Socket io on the Server
417-Establishing a Connection From the Client
418-Identifying Realtime Potential
419-Sharing the IO Instance Across Files
420-Synchronizing POST Additions
421-Fixing a Bug The Missing Username
422-Updating Posts On All Connected Clients
423-Sorting Correctly
424-Deleting Posts Across Clients
425-Wrap Up
Section 28
Working with GraphQL
427-Module Introduction
428-What is GraphQL
429-Understanding the Setup Writing our First Query
430-Defining a Mutation Schema
431-Adding a Mutation Resolver GraphiQL
432-Adding Input Validation
433-Handling Errors
434-Connecting the Frontend to the GraphQL API
435-Adding a Login Query a Resolver
436-Adding Login Functionality
437-Adding a Create Post Mutation
439-Sending the Create Post Query
440-Fixing a Bug Adding New Posts Correctly
441-Adding a Get Post Query Resolver
442-Sending Create Post and Get Post Queries
443-Adding Pagination
444-Uploading Images
446-Viewing a Single Post
447-Updating Posts
448-Deleting Posts
450-Managing the User Status
451-Using Variables
452-Fixing a Pagination Bug
453-Wrap Up
Section 29
Deploying our App
455-Module Introduction
456-Deploying Different Kinds of Apps
457-Deployment Preparations
458-Using Environment Variables
459-Using Production API Keys
460-Setting Secure Response Headers with Helmet
461-Compressing Assets
462-Setting Up Request Logging
464-Setting Up a SSL Server
465-Using a Hosting Provider
466-Understanding the Project the Git Setup
467-A Deployment Example with Heroku
469-Deploying APIs
Section 30
Testing Node.js Applications
471-Module Introduction
472-What is Testing
473-Why How
474-Setup and Writing a First Test
475-Testing the Auth Middleware
476-Organizing Multiple Tests
477-What Not To Test
478-Using Stubs
479-Testing Controllers
480-Testing Asynchronous Code
481-Setting up a Testing Database
482-Testing Code With An Active Database
483-Cleaning Up
484-Hooks
485-Testing Code That Requires Authentication
486-Wrap Up Mastering Tests
Section 31
Node.js as a Build Tool & Using npm
488-Module Introduction
490-Using npm
492-What is a Build Tool
493-Using Node js in Build Processes
Section 32
Modern JavaScript & NodeJS
495-Module Introduction
496-What is this Module About
497-Working with ES Modules Node
498-More on ES Modules
499-Node Core Modules Promises
Section 33
NodeJS & TypeScript
501-Module Introduction
502-TypeScript What Why
503-TypeScript Setup
504-Assigning Types
505-Type Inference Type Casting
506-Configuring TypeScript
507-Working with Union Types-
508-Using Object Array Types
509-Working with Type Aliases Interfaces
510-Understanding Generics
511-A First Summary
512-Node TypeScript Setup
513-Getting Started with Node and TypeScript
514-Writing TypeScript Express js Code
515-Adding REST Routes with TypeScript
516-Finishing the REST Routes
517-Testing the API
518-Using Type Casting
519-Moving to a Better Project Structure
520-Wrap Up
Section 34
An Introduction to Deno
522-Module Introduction
523-What is Deno
524-Why Deno
525-Deno Setup
526-Writing First Deno Code
527-The Deno Runtime Namespace API
528-Using the Runtime API
529-Working with Deno Permissions
530-Repeating the Example with Node
531-How Deno Features Are Organized
532-Using the Standard Library
533-Creating a Webserver
534-Using the Oak Framework with Deno
536-An Example Node REST API-
537-Re building the REST API with Deno
538-Should You Switch From Node to Deno
Section 35
Deno, CRUD & Databases (MongoDB)
540-Module Introduction
541-App Setup
542-Handling CORS Errors
543-Connecting Deno to MongoDB
544-Using the MongoDB Client Module
545-Finishing the Deno MongoDB CRUD Operations
546-Wrap Up
Section 36
Roundup
548-Course Roundup
Instructors
Enrolment options
NodeJS - The Complete Guide (MVC, REST APIs, GraphQL, Deno)
Course modified date:
13 Apr 2024
Enrolled students:
There are no students enrolled in this course.
Guests cannot access this course. Please log in.
Continue
Enrol now
This course includes
Resources
Share this course
Scroll to top
×
Close
×
Close