Giảm 35% Khóa Học Spring MVC còn 949k   | Ưu Đãi Đặc Biệt Cho Học Viên Mới.
Kết thúc trong  0h 0m 0s .
Nest.JS với TypeScript/MongoDB Siêu Dễ
Làm Backend Node.JS Chuyên Nghiệp với Framework Nest.JS
 (142 đánh giá)    413 học viên
Ngôn ngữ: Tiếng Việt
Tags: BACKEND
Tác giả : Hỏi Dân IT
image outstanding course
Click để xem video demo kết quả đạt được khi kết thúc khóa học
Nest.JS với TypeScript/MongoDB Siêu Dễ
Làm Backend Node.JS Chuyên Nghiệp với Framework Nest.JS
 (142 đánh giá) 413 học viên
Ngôn ngữ: Tiếng Việt
Tags: BACKEND
Tác giả : Hỏi Dân IT
999.000
1.499.000-33%
Cam kết mua khóa học 1 lần, học mãi mãi, và nhận cập nhật miễn phí!

Khóa học này bao gồm:
  • 22 giờ video theo yêu cầu
  • 137 videos hướng dẫn
  • 01 tài liệu hướng dẫn theo từng video
  • Quyền truy cập đầy đủ suốt đời
  • Truy cập trên thiết bị di động và TV
Những gì bạn sẽ học
  • Luyện Tư Duy Khi Xây Dựng Một Hệ Thống Lớn & Tính Mở Rộng Cao
  • Rèn Luyện Kỹ Năng Lập Trình Hướng Đối Tượng Qua Thực Hành
  • Thực Hành Xây Dựng Backend phân chia Modules
  • Thực Hành NestJS như là server Restful APIs

Video Demo thành quả đạt được sau khi kết thúc khóa học:

Nội dung khóa học
17 chương • 130 bài giảng • 22 giờ tổng thời lượng
Chapter 0: Giới Thiệu Về Khóa Học
4 bài giảng
Giới thiệu về khóa học và tác giả, cũng như demo kết quả đạt được sau khi kết thúc khóa học này.
#0.1. Demo Kết Quả Đạt Được Khi Kết Thúc Khóa Học
#0.2. Yêu Cầu Của Khóa Học
#0.3. Về Khóa Học này
#0.4. Về Tác Giả
Giới thiệu tổng quan về Framework Nest.js và trả lời câu hỏi, tại sao chúng ta lại cần Nest.JS, từ đấy viết chương trình Hello World với Framework này.
#1. Nest.JS là gì ?
#2. Create A New Project
#3. Hello world
#4. Kiến trúc của dự án Nest.JS
Tìm hiểu và học cách sử dụng Decorator của Typescript vào Nest.JS, từ đấy nắm vững cách hoạt động Router và Controller khi sử dụng các Decorator có sẵn do Nest.JS cung cấp.
#5. Typescript Decorators
#6. Sử dụng Decorator với Nest.JS
#7. Mô hình Router với Nest.JS
#8. Controllers
Khi Học về OOP (lập trình hướng đối tượng), một trong các cách dùng để tối ưu hóa ứng dụng là áp dụng mô hình IoC(Inversion of control) và DI (Dependency injection). Chương này sẽ giúp chúng ta học cách sử dụng các “design pattern” trên vào framework Nest.JS
#9. Inversion Of Control (IoC)
#10.1 Khái Niệm Modules
#10.2 Dependencies Injection (DI)
#11. Injecting a dependency
NestJS cũng có đủ khả năng và sức mạnh để làm Server theo mô hình MVC truyền thống. Tại đây, chúng ta sẽ tìm hiểu về View Engine, cách viết code theo mô hình Model-View-Controller và các nhược điểm đang còn tồn đọng của mô hình này.
#12. Ví dụ về controller/service
#13. Template View Engine
#14. Mô hình MVC
#15. Vấn Đề tồn đọng với SSR ?
Trong chương này, chúng ta sẽ cùng nhau kết nối backend tới Database bằng cách sử dụng MongoDB. Ngoài ra, sẽ tối ưu hóa cách sử dụng “hằng số”, dựa vào cách sử dụng tham số môi trường (.env) với Nest.JS Config.
#16. Lựa chọn Database
#17. Cài đặt MongoDB
#18. Sử dụng MongoDB với NestJS
#19. ENV Variables
Ngoài khả năng có thể tạo server theo mô hình MVC, Nest.JS cũng có thể làm server Restful APIs. Chúng ta sẽ cùng nhau viết nhanh module Users theo đúng chuẩn Restful, sử dụng các công cụ có sẵn của Nest.JS, bao gồm generate resources, schema, controller và services.
#20. Generate resources
#21. Create Schema (Model)
#22.1 Create A User
#22.2 Hash User’s Password
#22.3 DTO - Data Transfer Object
#22.4 Pipe
#22.5 Validation
#23. Get User by Id
#24. Update a User
#25. Delete a User
Mọi website đều hoạt động dựa trên mô hình Stateful và Stateless. Ở đây, chúng ta cần nắm vững, hiểu rõ và có khả năng phân biệt điểm khác nhau của 2 mô hình này, bởi vì, việc chúng ta lựa chọn mô hình nào, nó sẽ quyết định cách thức tổ chức code cho dự án của chúng ta.
#26. Setup Backend Test
#27. Debug NestJS Applications
#28. Stateful Application
#29. Cơ chế hoạt động của stateful app
#30. Ưu, nhược điểm của Stateful ?
#31. Mô hình stateless
#32. Ưu, nhược điểm của Stateless
Sử dụng mô hình Stateless, server sẽ không có “session” để kiểm tra user có hợp lệ hay không, nên JWT (Json web token) là một giải pháp rất phổ biến được dùng cho mô hình này. Ở đây, chúng ta sẽ tìm hiểu về JWT, cũng như áp dụng nó để xác thực người dùng trong dự án Nest.JS
#33. JWT là gì ?
#34. Phân loại token sử dụng
#35. Giới thiệu về Passport.JS
#36. Local Strategies với NestJS
#37. Nestjs Guard
#38. LocalGuard với Passport
#39. Sử dụng JWT
#40. Implementing Passport JWT
#41. Enable authentication globally
#42. Disable Guard
#43. Fix bugs và tổng kết
Giới thiệu đề tài dự án thực hành cuối khóa, cũng như tư duy phân tích database, cách thiết kế table và mối quan hệ giữa các đối tượng trong dự án thực hành.
#44. Giới thiệu đề bài
#45. Phân tích model & relationship
#46. Thiết kế model
Để có thể sử dụng Mongoose (MongoDB) hiệu quả, chúng ta sẽ cùng nhau cài đặt các plugin hỗ trợ việc Query/Filter kết quả, thực hiện “soft-delete”, tự động tạo “timestamp” và đặc biệt, khắc phục lỗi CORS với Nest.JS
#47. Timestamps plugin
#48. Soft-delete plugin
#49. Query Builder
#50. Setup dự án frontend
#51. CORS là gì ?
#52.1 Làm sao để bypass CORS ?
#52.2 Setup Cors NestJS
Bài tập thực hành: tạo module “Company”. Ngoài việc thực hiện CRUD, chúng ta sẽ tìm hiểu cách phân trang (paginate data), sử dụng Interceptor để xử lý data trước khi trả về client, customize message response cũng như “đánh version” cho API
#53. Generate Modules Company
#54. Bài Tập Create Company
#55. Update User Type (JWT)
#56. Passing Req.user
#57. Bài Tập Update Company
#58. Bài Tập Delete Company
#59. Query with Pagination
#60. Giới Thiệu Interceptor
#61.1 Transform Response
#61.2 Customize Message (Decorator)
#62. Version APIs
Bài tập thực hành: tạo module User. Ngoài CRUD, chúng ta sẽ tìm hiểu về cookies, cơ chế tạo access token, refresh token cho client.
#63. Update User Schema
#64.1 Bài Tập CRUD Users
#64.2 Hướng Dẫn Bài Tập CRUD Users
#65. Demo Chức năng login
#66. API login
#67. Set Cookies
#68. Bài Tập API Get Account (F5 Refresh)
#69.1 API Refresh Token (Part 1)
#69.2. API Refresh Token (Part 2)
#70. Bài Tập API Logout
#71.1 Test giao diện frontend (Part 1)
#71.2 Test giao diện frontend (Part 2)
Bài tập thực hành tạo module Job/Resume: CRUD job/resume, kết hợp việc sử dụng Multer để upload file cho Nest.JS, đồng thời sử dụng “ref” để “join data cho MongoDB”
#72. Bài Tập Tạo Module Jobs
#73. Bài tập CRUD Jobs
#74. Hướng Dẫn Bài tập CRUD Jobs
#75. Giới Thiệu Upload files
#76. Validate Upload Files
#77. Destination Upload File
#78. Bài Tập Update Company with Image
#79. Test Giao Diện Frontend Upload File
#80. Bài tập Tạo Modules Resumes
#81. Bài tập CRUD Resumes
#82. Hướng Dẫn Bài tập CRUD Resumes
#83.1 Fetch Data with Ref
#83.2 Test Giao Diện Frontend
Bài tập thực hành tạo module Permission/roles : CRUD Permissions/role, kết hợp áp dụng Nest.JS Life Cycle để tạo fake data cho dự án Backend.
#84. Bài tập Tạo Modules Permission & Roles
#85. Bài tập CRUD Permissions
#86. Hướng Dẫn Bài tập CRUD Permissions
#87. Bài tập CRUD Roles
#88. Hướng Dẫn Bài tập CRUD Roles
#89. Fix bugs
#90. Nest Lifecycle Event
#91. Bài tập Tạo Sample Data
#92. Hướng Dẫn Bài Tập Tạo Fake Data
#93. Test Giao Diện Frontend
#94. Roles Guards
Bài tập thực hành, tạo module Subscribers: CRUD subscribers, đồng thời tìm hiểu cách gửi email với Nest.js sử dụng “template xây dựng sẵn”, kết hợp với “cron jobs” để gửi email tự động.
#95. Bài tập CRUD Subscribers
#96. Giới thiệu về gửi email với Node.js
#97. Template Email
#98. Setup Tài khoản/Server gửi Email
#99. Nestjs - Mailer
#100. Gửi email với template
#101. Fetch Subscribers by skills
#102. Test giao diện frontend
#103. Cron job
#104. Tự động gửi email với cron job
#105. Nhận Xét về Dự Án Thực Hành Frontend
Giới thiệu các kiến thức nâng cao với Nest.JS, giúp tối ưu server backend. Ngoài ra, chúng ta sẽ tìm hiểu về cách upgrade version Nest.JS và cách build dự án backend với Docker.
#106. Authorization
#107. Helmet
#108. Rate Limiting
#109. Swagger
#110. Healthchecks
#111. Docs Whole App Backend
#112. Fix Bugs Còn Tồn Đọng
#113. Upgrade NestJS Version
#114. Build Docker
#115. Nhận Xét Về Khóa Học

Mô tả

I. Giới thiệu về Nest.JS

NestJS là một Backend Framework của Node.js, dùng để phát triển Server-Side Applications hiệu quả và có tính mở rộng cao.


Lợi thế của Nest.js so với cách code backend truyền thống, ví dụ như sử dụng Express:


1. Nest.js cung cấp bộ khung framework được tổ chức dưới dạng modules dễ bảo trì và phát triển thêm. 


Bạn code Express, bạn sẽ cần làm từ A tới Z. Với Nest.js, thông qua CLI (command line interface), chỉ một câu lệnh, bạn sẽ có sẵn định dạng code mong muốn.


2.Nest.js áp dụng OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming) giúp code gọn gàng và có quy luật.

Với Express, bạn code sao cũng được, miễn sao cho code nó chạy :v


3.Nestjs mặc định sử dụng Typescript để phát triển, giúp tăng trải nghiệm cho lập trình viên: Nestjs đã cấu hình sẵn typescript và không cần phải cài đặt gì thêm.


Bạn vẫn có thể sử dụng javascript để code Nestjs, tuy nhiên nếu làm vậy, sẽ không tận dụng được hết sức mạnh của framework này.


Trong khóa học này, chúng ta sẽ cùng nhau học cách sử dụng Framework Nestjs từ số 0, bắt đầu từ cách tạo project cho tới khi sử dụng với dự án thực hành.


II. Về dự án thực hành

Tên dự án: dự án website đăng tin tuyển dụng, có kết hợp phân quyền người dùng


1. Các tính năng chính

Ngoài các tính năng CRUD (thêm, sửa, xóa, hiển thị), dự án được chia thành các modules:

- Module Users: đăng ký, đăng nhập người dùng theo Role (vai trò)


- Module Permission (quyền hạn): người dùng được phân quyền để sử dụng hệ thống, ví dụ như user, admin...

Đối với từng Role và Permission, người dùng sẽ có giao diện hiển thị khác nhau


- Module Company, Jobs: hiển thị thông tin về công ty và tin tuyển dụng

- Module Subscribers: gửi email thông báo tự động với cron-job


Ngoài ra, còn có các kiến thức nâng cao như tạo giao diện Swagger, tạo Rate Limit, Healcheck, build với docker...


2. Công nghệ sử dụng

Backend: Nest.js (Typescript), database MongoDB (sử dụng ORM với Mongoose)

Frontend: React Vite (typescript), được cung cấp sẵn trong khóa học


3. Các kiến thức bạn học được

- Hiểu rõ và nắm vững các tổ chức của Framework Nest.JS (cấu trúc modules, tự duy IoC - inversion of control, DI (dependency injection). 

Vận dụng mô hình MVC, kết hợp với database MongoDB


- Luyện tập sử dụng Restful APIs với Nest.JS (và mongodb / thư viện mongoose)


- Xây dựng Module Authentication, phân biệt rõ ràng khái niệm SSR (server side rendering), CSR (client side rendering). Stateful Stateless application, cùng với các module khác để thực hiện một dự với phân quyền người dùng sử dụng


- Thực hành dự án sử dụng Nest.JS như là một server cung cấp resftul API cho client sử dụng (với JWT - json web token)


Khóa học này sẽ phù hợp với các bạn đã có kiến thức cơ bản về backend (có hiểu biết về Express/Node.JS là một lợi thế), đồng thời sử dụng database MongoDB


Sau khi kết thúc khóa học, bạn sẽ đủ khả năng để tạo một "backend server" phục vụ nhu cầu cơ bản của website với framework Nest.js

ĐÁNH GIÁ KHÓA HỌC

4.6 trên 5

Không có nội dung tồn tại

Tại sao lại lựa chọn khóa học của Hỏi Dân IT ?

Người khác hay so sánh và "làm màu" khóa học của bản thân, cho rằng người ta là nhất, đồng thời hạ thấp các khóa học đang có trên thị trường. Điều này sẽ dẫn tới tình trạng "ảo tưởng sức mạnh về khóa học" và bản thân bạn chính là những "con gà bị lùa."

Mình không thích điều trên, vì mình biết, chẳng ai là hoàn hảo cả. Mỗi khóa học đều có điểm hay và dở của nó. No one is perfect, right ?

Thành ra, bố cục khóa học của mình rất đơn giản. Luôn có video demo thành quả đạt được, cùng với giáo án để bạn hình dung về khóa học.

Mình không thích viết nhiều, vì chỉ cần video demo (hoặc hình ảnh), nó làm đơn giản hóa vấn đề so với việc miêu tả "làm màu" khóa học.

Điều bạn cần làm, để tránh tình trạng "bị lùa gà", chính là 7 nguyên tắc mà mình hay áp dụng:

  • 1. Xem kỹ video demo và giáo án khóa học để có góc nhìn tổng quát về các kiến thức sẽ học.
  • 2. Mình chỉ chịu trách nhiệm truyền đạt kiến thức - Tức là nội dung giáo án như nào, khóa học sẽ truyền đạt như vậy
  • 3. Học xong khóa học của mình, không đồng nghĩa với việc bạn trở thành siêu nhân hay thiên tài. Bạn cần tự làm dự án của bản thân để chuyển hóa kiến thức.
  • 4. Mình không cam kết học xong khóa học, kiếm được việc làm lương xxx. Tất cả các khóa học miêu tả như vậy, toàn là "lùa gà", why ? Vì người ta không là công ty tuyển dụng bạn, ok ?
  • 5. Việc học khóa học của mình, giống việc bạn đang sử dụng thực phẩm chức năng, không phải là thuốc chữa bệnh. Có nghĩa là, mình cho bạn "cần câu cơm", còn câu được cơm, cá... hay gì, là do bạn quyết định
  • 6. Cần tư vấn giải đáp trực tiếp, inbox Facebook mình hỗ trợ
  • 7. Mình có nguyên một mục tư vấn các câu hỏi thường gặp, các bạn có thể xem tại đây

Và, có một vài sự thật mà bạn chưa biết về "Hỏi Dân IT":

  • 1. Mình tốt nghiệp HUST (back khoa Hà Nội) chuyên ngành CNPM hệ kỹ sư (Software Engineer). Với 3+ năm kinh nghiệm của dân "đúng ngành", và làm lĩnh vực tài chính (or ngân hàng)
  • 2. Bạn có thể học từ mình những kinh nghiệm của người làm để rút ngắn quãng đường trở thành senior (không chỉ kỹ năng code)
  • 3. Mình có Youtube Hỏi Dân IT để chia sẻ kiến thức IT miễn phí (hơn 40k subscribers)
  • 4. Điểm Rating instructor trên Udemy là 4.8 (max là 5), với 3000+ students. Bạn có thể kiểm tra tại Udemy Profile của mình
  • 5. Nếu bạn muốn nói chuyện với mình, có thể xem mình livestream trực tiếp tối thứ 2 & thứ 5 hàng tuần trên Youtube Hỏi Dân IT :v
image outstanding course
Click để xem video demo kết quả đạt được khi kết thúc khóa học
999.000
1.499.000-33%
Cam kết mua khóa học 1 lần, học mãi mãi, và nhận cập nhật miễn phí!

Khóa học này bao gồm:
  • 22 giờ video theo yêu cầu
  • 137 videos hướng dẫn
  • 01 tài liệu hướng dẫn theo từng video
  • Quyền truy cập đầy đủ suốt đời
  • Truy cập trên thiết bị di động và TV