Mô tả

NestJS is a Node.js back-end development framework built upon Express, leveraging the power of TypeScript.

NestJS leverages the incredible popularity and robustness of JavaScript as a language and Node.js as a technology. It is inspired by common libraries and frameworks such as Angular, React and Vue which improve developer productivity and experience.

Even considering the amount of superb libraries, helpers and tools that exist for server-side Node.js, none of them effectively solve the main problem - the architecture of an application.

NestJS provides an out-of-the-box application architecture which allows developers and teams to create highly testable, scalable, loosely coupled and easily maintainable applications.


Recently, the NestJS framework is gaining extreme popularity due to its incredible features;

  • Leverages TypeScript - strongly typed language which is a super-set of JavaScript

  • Simple to use, easy to learn and easy to master

  • Powerful Command Line Interface (CLI) tool that boosts productivity and ease of development

  • Detailed, well-maintained documentation

  • Active codebase development and maintenance

  • Open-source (MIT license)

  • Supports dozens nest-specific modules that help you easily integrate with common technologies and concepts such as TypeORM, Mongoose, GraphQL, Logging, Validation, Caching, Websockets and much more

  • Easy of unit-testing applications

  • Made for Monoliths and Micro-services (entire section in the documentation regarding the Microservice type of a NestJS application, as well as techniques and recipes).

In this course I am going to guide you through the process of planning, developing and deploying a fully-featured back-end application, based on my experience developing and maintaining systems that support dozens of millions of concurrent users at scale.

Bạn sẽ học được gì

Becoming familiar with the NestJS framework and its components

Designing and developing REST APIs performing CRUD operations

Authentication and Authorization for back-end applications

Using TypeORM for database interaction

Security best practices, password hashing and storing sensitive information

Persisting data using a database

Deploying back-end applications at a production-ready state to Amazon Web Services

Writing clean, maintainable code in-line with industry standards

Utilising the NestJS Command Line Interface (CLI)

Using Postman for testing back-end services

Using pgAdmin as an interface tool to manage PostgreSQL databases

Implement efficient logging in a back-end application

Environment-based configuration management and environment variables

Implementing data validation and using Pipes

Guarding endpoints for authorized users using Guards

Modelling entities for the persistence layer

TypeScript best practices

Handling asynchronous operations using async-await

Using Data Transfer Objects (DTO)

Hands-on experience with JSON Web Tokens (JWT)

Unit testing NestJS applications

Using GraphQL with NestJS

Database persistence with MongoDB

Yêu cầu

  • Having a basic understanding of JavaScript and/or NodeJS
  • Having basic knowledge of TypeScript is recommended, but not required

Nội dung khoá học

13 sections

Introduction to NestJS & Pre-requisites

4 lectures
Welcome to the course!
01:11
Installing Node.js and Yarn
00:16
Installing the NestJS CLI
00:56
(Optional) Installing VSCode and Extensions
02:55

Task Management Application (REST API)

26 lectures
Project Overview
05:17
Creating our project via the NestJS CLI
02:04
NestJS Project Structure
06:36
Introduction to NestJS Modules
02:53
More Valuable Content
00:45
Creating a Tasks Module
03:32
Introduction to NestJS Controllers
03:46
Creating at Tasks Controller
03:37
Introduction to NestJS Providers and Services
05:02
Creating a Tasks Service
05:54
Feature: Getting All Tasks
07:30
Installing Postman
00:12
Creating a Postman Collection
01:43
Defining a Task Model
05:01
Feature: Creating a Task (Part 1 - Controller)
04:59
Feature: Creating a Task (Part 2 - Service)
06:36
Intro to Data Transfer Objects (DTO)
05:36
Implementing CreateTaskDto
04:58
Feature: Getting a Task by ID
05:43
Challenge: Deleting a Task
00:52
Solution: Deleting a Task
04:23
Challenge: Update Task Status
01:19
Solution: Update Task Status
05:27
Feature: Searching and Filtering
08:49
Summary Quiz
6 questions
Section Code
00:00

Validation and Error Handling

7 lectures
Introduction to NestJS Pipes
04:14
ValidationPipe: Creating a Task
04:31
Error Handling: Getting a non-existing Task
04:16
Error Handling: Deleting a non-existing Task
01:09
Validation: Update Task Status
03:27
Challenge: Validating Task Filtering and Search
02:42
Section Code
00:00

Data Persistence - PostgreSQL and TypeORM

19 lectures
Introduction to Persistence
00:29
Installing Docker and pgAdmin
00:21
Running PostgreSQL via Docker
04:02
Setting up pgAdmin
01:45
Creating a Database using pgAdmin
00:54
Introduction to TypeORM
02:57
Setting up a Database Connection
04:29
Creating a Task Entity
03:51
Active Record VS Data Mapper Patterns
03:39
Creating a Tasks Repository
03:32
Refactoring for Tasks Service
03:44
Persistence: Getting a Task by ID
08:33
Persistence: Creating a Task
07:31
(Challenge) Persistence: Deleting a Task
01:22
(Solution) Persistence: Deleting a Task
04:58
Persistence: Update Task Status
02:40
Small Change Needed
01:40
Persistence: Getting All Tasks
12:21
Section Code
00:00

Auth Part 1 - Authentication

15 lectures
Intro to Authentication and Authorization
01:11
Setting up AuthModule, User Entity and User Repository
05:05
Feature: Signing Up
08:26
Validation: Credentials and Password Strength
04:12
Error Handling: Username Conflicts
06:42
Securely Storing Passwords
07:22
Password Hashing With Bcrypt
04:25
Feature: Signing In
04:42
Intro to JSON Web Tokens (JWT)
05:54
Setting up the JWT Module and Passport.js
03:34
Signing a JWT Token on Sign In (Authentication)
07:08
Implementing JWT Validation
11:38
Custom @GetUser Decorator
03:14
Guarding the Tasks Routes
02:00
Section Code
00:00

Auth Part 2 - Task Ownership and Restrictions

9 lectures
Tasks and Users - Database Relation
03:57
Make Users Own Tasks
04:36
Serialize User Data
03:39
Restricting Getting All Tasks
03:30
BUG FIX: Getting All Tasks
02:33
Restricting Getting a Task By ID
03:50
Restricting Status Updates
00:50
Restricting Deleting A Task
01:23
Section Code
00:00

THANK YOU!

1 lectures
THANK YOU! (+ Promotion)
01:33

(Bonus) Logging

3 lectures
Introduction to Logging
02:53
Implementing Logs in our NestJS app
14:54
Section Code
00:00

(Bonus) Configuration Management

8 lectures
Introduction to Configuration
02:10
Windows: Environment Variables
00:34
Quick Intro to Environment Variables
03:50
Setting up ConfigModule
09:18
TypeORM Configuration
09:37
Config Schema Validation
06:38
JWT Secret Configuration
04:07
Section Code
00:00

(Bonus) Front-end Application

2 lectures
Front-end Application
05:35
Section Code
00:00

(Bonus) Deployment

9 lectures
DISCLAIMER: Potential Costs
00:18
Signing up to Heroku
01:06
Creating a Heroku Application
00:58
Installing the the Heroku CLI
01:11
Postgres on Heroku
02:59
Changes in our NestJS App
05:11
Deploying NestJS to Heroku
09:48
Deploying Front-end to GitHub Pages
08:20
Section Code
00:00

(Bonus) Unit Testing

6 lectures
Unit Testing Crash Course: Basics
01:46
Unit Testing Crash Course: First Tests
06:38
IMPORTANT: Fixing import paths
01:35
Testing TasksService - Part 1
18:43
Testing TasksService - Part 2
07:29
Section Code
00:00

GraphQL + MongoDB

28 lectures
GraphQL + MongoDB: Section Introduction
01:05
Project Overview: School Management
02:38
MongoDB Installation
00:13
Robo 3T - Connecting to the MongoDB Database
01:14
Project setup
02:04
Ensure NestJS 7 Installation
00:54
Installing GraphQL Dependencies
03:02
IMPORTANT! GraphQL installation version
00:17
Creating the Lesson Module
01:26
Defining the Lesson GraphQL Type
03:13
Creating the Lesson Resolver
04:03
Using the GraphQL Playground
03:44
Persistence: TypeORM, MongoDB and our Lesson Entity
06:33
LessonService and createLesson method
08:05
Create Lesson GraphQL Mutation
05:01
getLesson GraphQL Query with MongoDB
03:40
Validation: Create Lesson Input
07:15
Challenge: Get All Lessons GraphQL Query
04:07
Creating the Student Module
01:43
Challenge: Defining the Student Entity
02:53
Challenge: Create Student Mutation
10:28
Challenge: Get All Students GraphQL Query
02:37
Challenge: Get Student by ID Query
02:44
Assign Students To Lesson GraphQL Mutation
10:26
Improvement: Assign Students Upon Lesson Creation
03:14
Resolve "students" Field in Lesson
08:13
Additional Resources: GraphQL
00:02
Section Code
00:00

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.