مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
ساخت پروژههای مقیاسپذیر با NestJS: احراز هویت پیشرفته، نوتیفیکیشنهای بیدرنگ، ادغام ایمیل و موارد دیگر
NestJS یک فریمورک قدرتمند و رو به رشد است که به توسعهدهندگان امکان میدهد برنامههای مقیاسپذیر و کارآمد را به راحتی بسازند. در این دوره، یاد میگیرید چگونه از تمام پتانسیل NestJS برای ایجاد سیستمهای بکاند قوی استفاده کنید.
در این دوره، شما فقط NestJS را یاد نخواهید گرفت؛ بلکه مهارتهای ضروری یادگیری فناوریهای جدید را نیز تسلط خواهید یافت. نمایشهای اسلاید فانتزی و محتوای بیمورد را فراموش کنید—این دوره بر ورود عمیق به مطالب اصلی، مستقیماً از منابع رسمی تمرکز دارد. من به قدرت یادگیری واقعی و عملی اعتقاد دارم و به جای تکرار صرف آنچه در حال حاضر وجود دارد، بر کاربرد عملی تمرکز خواهیم کرد.
چرا میگویم "شما فقط NestJS را یاد نمیگیرید "؟ چون در این دوره، به شما نشان خواهم داد که چگونه به طور مؤثر تحقیق کنید ، اشکالات را برطرف کنید و مستندات را بخوانید —مهارتهایی که هر توسعهدهندهای برای پیشرفت به آنها نیاز دارد. اینها فقط تواناییهای فنی نیستند؛ بلکه مهارتهای زندگی برای حل مسئله و یادگیری مداوم هستند که برای همگام شدن با فناوریهای همیشه در حال تحول، حیاتی میباشند.
پس از اتمام این دوره، شما فقط در NestJS مهارت نخواهید داشت. شما اعتماد به نفس و متدولوژی لازم برای یادگیری هر فریمورک ، زبان یا ابزاری که مایل به یادگیری آن هستید را توسعه خواهید داد. این دوره به شما یاد میدهد که چگونه از دام "جهنم آموزش" (tutorial hell)—آن چرخه ناامیدکننده که در آن بیش از حد به راهنماهای گام به گام وابسته میشوید بدون اینکه درک واقعی کسب کنید—اجتناب کنید. شما یاد خواهید گرفت که چگونه مستقل فکر کنید ، مستندات را کاوش کنید و مسائل را حل کنید —شما را به یک توسعهدهنده خودکفا تبدیل میکند که آماده مقابله با هر چالشی است که در مسیرتان قرار میگیرد.
آنچه در این دوره خواهید آموخت:
مفاهیم اصلی NestJS: ما با ایجاد یک پایه محکم در NestJS شروع خواهیم کرد و به ویژگیهای اصلی و بهترین شیوههای این فریمورک برای ساخت برنامههای قابل نگهداری میپردازیم.
ساخت یک برنامه کوچک با MongoDB: پس از آشنایی با اصول اولیه، روی یک پروژه عملی با استفاده از MongoDB کار خواهیم کرد تا به تقویت درک شما از NestJS و نحوه اعمال آن در سناریوهای دنیای واقعی کمک کنیم.
توسعه یک برنامه در مقیاس بزرگ با SQL و TypeORM: در نهایت، با توسعه یک برنامه بزرگ و پیچیده با استفاده از SQL و TypeORM ، ادغام مفاهیم پیشرفته مانند احراز هویت، ارتباطات بیدرنگ و موارد دیگر، کار را گسترش خواهیم داد.
پیشنیازها:
دانستن اصول اولیه TypeScript ضروری است.
داشتن دانش در مورد NodeJS.
درک ExpressJS توصیه میشود اما الزامی نیست.
داشتن مهارتهای پایه SQL.
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه
Introduction
چرا باید NestJS را یاد بگیریم؟
Why should we learn NestJS?
منبع
Resource
مفهوم اصلی NestJS
NestJS: Core Concept
ساختار پوشه NestJS
Explore NestJS folder structure
کنترلر در NestJS
Controller in NestJS
اصل مسئولیت واحد
Single responsibility principle
مقدمهای بر Provider
Introduction to Provider
اصل وارونگی کنترل (Inversion of Control)
Inversion of Control principle
اعمال اصل IoC در NestJS
Apply IoC principle in NestJS
تزریق وابستگی (Dependency Injection)
Dependency Injection
کانتینر IoC چگونه کار میکند؟
How IoC Container work?
نگاهی به ماژول
Look at Module
کار با ماژول
Work with Module
میدلور (Middleware)
Middleware
میدلور - بخش دوم
Middleware - part 2
استثنا (Exception)
Exception
پایپها (Pipes)
Pipes
گارد (Guard)
Guard
اینترسپتور (Interceptor)
Interceptor
دکوراتورهای سفارشی
Custom decorators
جمعبندی: مفاهیم اصلی
Wrap up: Core concept
Mongoose, CRUD, Data Transfer Object
Mongoose, CRUD, Data Transfer Object
مرور بخش
Section overview
Nest CLI
Nest CLI
تنظیم MongoDB
Setup mongodb
اتصال به MongoDB Atlas
Connect mongodb atlas
ایجاد اسکیمای پست
Create post shema
تزریق ریپازیتوری
Inject repository
درج سند
Insert document
DTO چیست؟
What is a DTO?
اطلاعات بیشتر درباره DTO
More about DTO
اعتبارسنجی (Validation)
Validation
یادآوری درباره DTO
Reminder about DTO
پرس و جوی دادهها
Query data
گزینههایی برای کاهش (پنهان کردن) دادهها
Some options to reduce (hide) data
استفاده از اینترسپتور برای پاسخ DTO
Use interceptor to response DTO
تبدیل DTO
Transform DTO
پرس و جوی یک داده
Query a data
بهروزرسانی همه فیلدها (PUT)
Update all fields (PUT)
بهروزرسانی برخی فیلدها (PATCH)
Update some field (PATCH)
حذف سند
Delete document
تزریق ماژول دیگر
Inject another module
تنظیم Swagger UI - بخش اول
Setup swagger UI - part 1
Swagger UI - بخش دوم
Swagger UI - part 2
بررسی سلامت برنامه NestJS
Health check nestjs app
مستندسازی برنامه NestJS
Documentation for NestJS Application
چرخه حیات NestJS
NestJS Lifecycle
نسخهبندی (Versioning)
Versioning
وابستگی چرخهای
Circular dependency
جمعبندی
Wrap up
زمان پروژه بزرگ: TypeORM
Big Project Time: TypeORM
ایجاد پروژه جدید NestJS
Create new NestJS Project
نصب pgAdmin
Install pgAdmin
تنظیم TypeORM با PostgreSQL
Setup TypeORM with PostgresQL
متغیرهای محیطی
Environment variables
ایجاد موجودیت کاربر
Create user entity
کار با TypeORM
Work with TypeORM
ماژول: احراز هویت JSON Web Token (JWT)
Module: JSON Web Token (JWT) Authentication
ایجاد ماژول احراز هویت
Create auth module
دوباره... تزریق وابستگی - ثبت نام کاربر
Again ... Dependency Injection - Sign Up user
ایمیل منحصربهفرد
Unique email
پیکربندی ناهمگام JWT
JWT Async configuration
ورود به سیستم
Sign In
بازسازی تولید JWT
Refactor JWT Generate
گارد احراز هویت
Authentication Guard
دریافت کاربر فعلی
Get current user
مجوز دسترسی: پیشرفته (نقش، مجوزها، نقطه پایانی)
Authorization: Advanced (Role, Permissions, Endpoint)
ایجاد ماژول نقش
Create role module
رابطه یک به چند (Many To One)
Many To One Relationship
ایجاد نقش
Create role
ایجاد نقش
Create role
اختصاص نقش به کاربر
Assign role to user
دریافت همه نقشها
Get all roles
بهروزرسانی نقش
Update role
حذف نقش
Delete role
جدول اتصال TypeORM (رابطه) - جلوگیری از حذف نقش اختصاص داده شده
TypeORM join table (relation) - prevent delete assigned role
ایده مجوزها
The idea of permissions
ایجاد ماژول نقطه پایانی
Create endpoint module
موجودیت نقطه پایانی
Endpoint entity
ایجاد نقطه پایانی
Create endpoint
استراتژی مدیریت ۱۰۰۰ نقطه پایانی - حذف همه نقاط پایانی
Strategy to handle 1 THOUSAND ENDPOINT - Truncate all endpoint
چگونه همه نقاط پایانی را در برنامه دریافت کنیم؟
How to get all endpoint in application ?
درج همه نقاط پایانی در پایگاه داده
Insert all endpoint to DB
تراکنش پایگاه داده
Database Transaction
ماژول مجوز
Permission module
موجودیت مجوز
Permission entity
ترکیب کلید اصلی
Compose primary key
افزودن همه مجوزها به پایگاه داده
Add all permissions to DB
مجاز کردن دسترسی
Allow permission
مجوز دسترسی هنوز کامل نشده است، دوستان من
Authorization has not yet been completed, my friends
ماژول: دسته بندی (قلابها)
Module: Category (Hooks)
موجودیت دسته بندی
Category Entity
کد وضعیت HTTP سفارشی
Custom http status code
Swagger
Swagger
اگر میخواهید از Swagger استفاده کنید
If you want to use swagger
ایجاد دسته بندی
Create category
قلاب TypeORM - مدیریت اسلاگ
TypeORM hook - Handle slug
دریافت دسته بندی
Get category
بهروزرسانی DTO پاسخ شما
Upgrade your response DTO
بهروزرسانی دسته بندی
Update category
حذف دسته بندی
Delete category
حذف نرم داخلی TypeORM
TypeORM built-in soft delete
خوش آمدید به دسته بندی فرزند
Welcome to child category
درک دسته بندی فرزند
Understand child category
ایجاد دسته بندی فرزند
Create child category
DTO تودرتو - یافتن دسته بندی والد به همراه دسته بندی فرزند
Nested DTO - Find parent category along with child category
رفع DTO
Fix DTO
ماژول: محصول
Module: Product
موجودیت محصول
Product entity
انواع داده PostgreSQL
Postgres data types
توضیح دقت و مقیاس در numeric
Explain precision and scale in numeric
ایجاد محصول
Create product
ویژگی سفارشی در DTO پاسخ
Custom property in response DTO
دریافت همه محصولات
Get all products
دریافت یک محصول
Get one product
بهروزرسانی محصول
Update product
حذف نرم محصول
Soft delete product
صفحه بندی و فیلتر کردن
Pagination & Filtering
DTO پاسخ محصول با صفحه بندی
Product response dto with pagination
ماژول: بارگذاری فایل
Module: File Upload
ماژول بارگذاری
Upload module
اولین نگاه به بارگذاری فایل
First look about upload file
بارگذاری تصویر در دیسک
Upload image to disk
نوع بارگذاری
Type upload
ذخیره URL تصویر در پایگاه داده
Save image url to DB
جمعبندی
Wrap up
ماژول: گالری محصولات، بارگذاری چندین تصویر
Module: Product Galleries, Upload mutiple images
ماژول گالری محصول
Product Gallery Module
اولین نگاه به بارگذاری چندین تصویر
First look to upload multiple images
بارگذاری چندین تصویر
Upload mutiple images
حذف گالری و تصویر
Delete gallery and image
ماژول: ویژگیهای محصول
Module: Product attributes
ایده ویژگیهای محصول
The idea of product attributes
ایجاد موجودیت واریانت
Create Variant entity
ایجاد واریانت
Create variant
یافتن واریانتها بر اساس محصول
Find variants by product
حذف واریانت
Delete variant
ایجاد موجودیت آیت واریانت
Create variant item entity
ایجاد آیت واریانت
Create variant item
یافتن آیت بر اساس واریانت
Find item by variant
حذف آیت واریانت
Delete variant item
اگر واریانت را حذف کنیم چه اتفاقی میافتد؟
What happen If we remove variant ?
قیمت آیت واریانت
Variant item price
مقدمهای بر DTOهای تودرتو عمیق
Introduction to deeply nested DTO
ماژول: کاربر
Module: User
بازگشت به ماژول کاربر
Comback to user module
دریافت یک کاربر
Get a user
بهروزرسانی کاربر
Update user
حذف کاربر
Delete user
تغییر رمز عبور
Change password
بهروزرسانی اطلاعات من
Update my information
ماژول: سبد خرید، یک طرفه، دو طرفه
Module: Cart, Uni-Directional, Bi-Directional
ایجاد موجودیت سبد خرید
Create cart entity
درک یک طرفه و دو طرفه - موجودیت آیت سبد خرید
Understand uni-directional & bi-directional - cart item entity
ایجاد سبد خرید برای کاربر
Create cart for user
افزودن به سبد خرید
Add to cart
افزودن واریانت به آیت سبد خرید
Add variant to cart item
افزودن به سبد خرید کامل شد
Add to cart completed
حذف آیت از سبد خرید
Delete item from cart
دریافت سبد خرید من
Get my cart
محاسبه مجدد قیمت کل سبد خرید
Re-calculate total cart price
ماژول: آدرس حمل و نقل
Module: Shipping Address
ایجاد موجودیت آدرس حمل و نقل
Create shipping address entity
ایجاد آدرس حمل و نقل
Create shipping address
یافتن همه و یافتن آدرس من
Find all & find my address
دریافت و بهروزرسانی آدرس
Get address & update
حذف آدرس
Delete address
ماژول: قانون حمل و نقل
Module: Shipping rule
ایجاد موجودیت قانون حمل و نقل
Create shipping rule entity
ایجاد قانون حمل و نقل
Create shipping rule
دریافت همه قوانین حمل و نقل
Get all shipping rules
بهروزرسانی قانون حمل و نقل
Update shipping rule
بهروزرسانی وضعیت قانون حمل و نقل
Update shipping rule status
ماژول: سفارش
Module: Order
نحوه طراحی جدول سفارش
How to design order table
ایجاد موجودیت سفارش
Create order entity
ایجاد موجودیت جزئیات سفارش
Create order detail entity
پردازش سفارش - بخش اول
Process order - part 1
پردازش سفارش - بخش دوم
Process order - part 2
محاسبه کل قیمت سفارش و اعمال تراکنش
Calculate total order price and apply transaction
پاک کردن آیتهای سبد خرید هنگام سفارش
Clear cart items when order
بهروزرسانی وضعیت سفارش
Update order status
دریافت همه سفارشها
Get all orders
دریافت جزئیات سفارش
Get order details
ماژول: ارسال ایمیل
Module: Send Email
تنظیم حساب Mailtrap - ارسال ایمیل
Setup mailtrap account - send email
بازسازی ارسال ایمیل
Refactor send email
ماژول: نقد و بررسی
Module: Review
ایجاد موجودیت نقد و بررسی
Create review entity
ایجاد نقد و بررسی برای محصول
Create review for product
جلوگیری از ایجاد نقد و بررسی
Prevent create review
دریافت همه نقد و بررسیها
Get all reviews
یافتن و بهروزرسانی نقد و بررسی
Find and update review
حذف نقد و بررسی
Delete review
فقط یک بار نقد و بررسی کنید
Review one time
مجوز دسترسی پیشرفته، ماژول جهانی و اشتراکی
Authorization Advanced, Global and Shared Module
دریافت URL و متد درخواست فعلی
Get current request URL and METHOD
مدیریت مجوز دسترسی در برنامه
Handle authorization in application
ماژول اشتراکی جهانی
Global shared module
جمعبندی بخش
Wrap up section
توکن بازخوانی
Refresh Token
ایده توکن بازخوانی
The idea of refresh token
پیادهسازی توکن بازخوانی
Implement Refresh Token
پیشرفته: اعلانهای بیدرنگ، کش کردن دادهها، لاگر
Advanced: Notification realtime, Caching Data, Logger
ایده اعلانهای بیدرنگ
The idea of notification realtime
تنظیم گیتوی اعلان
Setup notification gateway
ارسال اعلان به کلاینت (با دموی فرانتاند)
Send notification to client (with frontend demo)
موجودیت اعلان
Notification entity
دریافت همه اعلانها
Get all notifications
مقدمهای بر کش کردن
Introduction to caching
مدیر کش
Cache manager
اعمال کش
Apply the cache
کلید کش منحصربهفرد
Unique cache key
یک مشکل بزرگ با کش کردن
A BIG gotcha with caching
اعمال یک کش دیگر
Apply one more cache
کش خودکار
Auto caching
کش جهانی
Global cache
لاگر، نسخهبندی
Logger, Versioning
لاگر
Logger
نسخهبندی
Versioning
فراموشی و بازنشانی رمز عبور
Forgot & Reset Password
گردش کار فراموشی و بازنشانی رمز عبور
Forgot & Reset Password Flow
جدول درخواست تغییر رمز عبور
Change password request table
فراموشی رمز عبور
Forgot password
بازنشانی رمز عبور
Reset password
نمایش نظرات