آموزش توسعه بک‌اند با NestJS و Node.js: راهنمای جامع - آخرین آپدیت

دانلود NestJS Ultimate: Backend Development with Node.js Framework

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

ساخت پروژه‌های مقیاس‌پذیر با 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

نمایش نظرات

آموزش توسعه بک‌اند با NestJS و Node.js: راهنمای جامع
جزییات دوره
26 hours
204
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
537
4.7 از 5
ندارد
دارد
دارد
Van Nguyen
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Van Nguyen Van Nguyen

توسعه دهنده وب