آموزش NodeJS - راهنمای کامل (MVC، REST API، GraphQL، Deno)

NodeJS - The Complete Guide (MVC, REST APIs, GraphQL, Deno)

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: Master Node JS & Deno.js، API های REST را با Node.js، GraphQL API بسازید، Authentication را اضافه کنید، از MongoDB، SQL و موارد دیگر استفاده کنید! با یکی از پرتقاضاترین زبان های برنامه نویسی توسعه وب کار کنید اصول و مفاهیم پیشرفته NodeJS را با جزئیات کامل بیاموزید ساخت برنامه های وب مدرن، سریع و مقیاس پذیر در سمت سرور با NodeJS، پایگاه های داده مانند SQL یا MongoDB و موارد دیگر درک NodeJS اکوسیستم و ساخت برنامه های رندر شده در سمت سرور، API های REST و API های GraphQL آشنایی کامل با DenoJS پیش نیازها: دانش عمومی در مورد نحوه عملکرد وب توصیه می شود، اما دانش پایه جاوا اسکریپت ضروری نیست، اکیدا توصیه می شود، اما می توان آن را در حین دریافت کرد. گذراندن دوره بدون دانش NodeJS مورد نیاز است!

به جامع ترین دوره Node.js در Udemy بپیوندید و Node را هم به صورت عملی و هم به صورت تئوری یاد بگیرید!

---

این دوره به‌روزرسانی شد تا شامل بخش‌هایی در Deno.js شود - علاوه بر بیش از 30 ساعت محتوا در Node.js!

---

Node.js احتمالاً محبوب ترین و مدرن ترین زبان برنامه نویسی سمت سرور است که این روزها می توانید در آن غوطه ور شوید!

برنامه‌نویس‌های Node.js تقاضای زیادی دارند و این زبان برای همه چیز از برنامه‌های وب سنتی با نماهای ارائه‌شده در سمت سرور از طریق APIهای REST تا GraphQL APIها و سرویس‌های وب بلادرنگ استفاده می‌شود. ناگفته نماند کاربردهای آن در ساخت گردش کار برای پروژه‌هایی در هر اندازه.

این دوره همه اینها را به شما آموزش می دهد! از ابتدا با دانش قبلی صفر فرض شده است. اگرچه اگر مقداری دانش به همراه داشته باشید، مطمئناً می‌توانید به سرعت به ماژول‌های دوره‌ای که برای شما جالب‌تر است بروید.

آنچه در این دوره خواهید آموخت:

  • Node.js Basic Basic Core Modules

  • تجزیه درخواست‌های ارسال پاسخ

  • پردازش پویا HTML (در سرور)

  • استفاده از Express.js

  • کار با فایل‌ها و تولید PDF در سرور (در لحظه)

  • افزایش و دانلود فایل

  • استفاده از الگوی Model-View-Controller (MVC)

  • استفاده از Node.js با SQL (MySQL) و Sequelize

  • استفاده از Node.js با NoSQL (MongoDB) و Mongoose

  • کار با Sessions Cookies

  • تأیید هویت و مجوز کاربر

  • ارسال ایمیل

  • در حال تایید ورودی کاربر

  • صفحه بندی داده ها

  • انجام پرداخت ها با Stripe.js

  • ساخت APIهای REST

  • احراز هویت در REST API

  • آپلود فایل در REST API

  • ساخت GraphQL API

  • احراز هویت در GraphQL API

  • آپلود فایل در GraphQL API

  • ساخت برنامه Realtime Node.js با Websockets

  • آزمایش خودکار (تست‌های واحد)

  • استقرار یک برنامه Node.js

  • استفاده از TypeScript با Node.js

  • کاوش Deno.js

  • و خیلی بیشتر!

آیا این به نظر محتوای زیادی دارد؟ مطمئناً همینطور است!

این دوره کوتاهی نیست، اما در نهایت "راهنمای کامل" در Node.js است. ما در بسیاری از موضوعات غوطه ور خواهیم شد و فقط سطح را خراش نمی دهیم.

ما همچنین فقط از تئوری خسته کننده و برخی اسلایدها عبور نمی کنیم. در عوض، ما دو پروژه بزرگ خواهیم ساخت: یک فروشگاه آنلاین (شامل پرداخت + پرداخت) و یک وبلاگ.

همه موضوعات و ویژگی‌های دوره در این پروژه‌ها نشان داده شده و مورد استفاده قرار می‌گیرند و بنابراین در یک محیط واقع‌بینانه با آنها آشنا می‌شوید.


آیا این دوره برای شماست؟

اگر تجربه Node.js ندارید، این دوره را دوست خواهید داشت زیرا با فرض دانش صفر شروع می شود. این دوره عالی برای تبدیل شدن به یک توسعه دهنده Node.js است.

اگر تجربه اولیه Node.js دارید، این دوره نیز کاملاً منطبق است زیرا می‌توانید ماژول‌های اصلی را به سرعت طی کنید و از همه غواصی‌های عمیق و موضوعات پیشرفته‌ای که دوره پوشش می‌دهد بهره‌مند خواهید شد.

آیا شما یک کاربر پیشرفته Node.js هستید؟ سپس برنامه درسی را بررسی کنید. شاید هیچ دوره دیگری پیدا نکرده باشید که نحوه استفاده از SQL با Node.js را نشان دهد. یا به GraphQL علاقه مند هستید. این احتمال وجود دارد که شما نیز از این دوره ارزش زیادی کسب کنید!


پیش نیازها

  • به هیچ وجه به دانش Node.js نیاز نیست!

  • دانش زبان برنامه نویسی دیگری (علاوه بر جاوا اسکریپت، نکته بعدی را ببینید) لازم نیست

  • دانش پایه جاوا اسکریپت فرض شده است - حداقل باید در حین گذراندن دوره، آن را انتخاب کنید. یک ماژول تجدید JS وجود دارد تا شما را سریعاً به آخرین نحو

    برساند
  • دانش پایه HTML + CSS کمک می کند اما لازم نیست


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • Node.js چیست؟ What is Node.js?

  • به انجمن آموزش آنلاین ما بپیوندید Join our Online Learning Community

  • نصب Node.js و ایجاد اولین برنامه ما Installing Node.js and Creating our First App

  • آشنایی با نقش و کاربرد Node.js Understanding the Role & Usage of Node.js

  • طرح کلی دوره Course Outline

  • چگونه از دوره بیشترین بهره را ببریم How To Get The Most Out Of The Course

  • کار با REPL در مقابل استفاده از فایل ها Working with the REPL vs Using Files

  • با استفاده از کد منبع پیوست شده Using the Attached Source Code

اختیاری: جاوا اسکریپت - یک بازنگری سریع Optional: JavaScript - A Quick Refresher

  • معرفی ماژول Module Introduction

  • جاوا اسکریپت به طور خلاصه JavaScript in a Nutshell

  • به روز کردن دستور هسته Refreshing the Core Syntax

  • اجازه دهید و ثابت کنید let & const

  • درک توابع پیکان Understanding Arrow Functions

  • کار با اشیا، ویژگی ها و روش ها Working with Objects, Properties & Methods

  • آرایه ها و روش های آرایه Arrays & Array Methods

  • آرایه ها، اشیاء و انواع مرجع Arrays, Objects & Reference Types

  • درک اپراتورهای Spread & Rest Understanding Spread & Rest Operators

  • در حال تخریب Destructuring

  • کد Async & Promises Async Code & Promises

  • الفاظ الگو Template Literals

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

درک اصول Understanding the Basics

  • معرفی ماژول Module Introduction

  • چگونه وب کار می کند How The Web Works

  • ایجاد Node Server Creating a Node Server

  • چرخه زندگی گره و حلقه رویداد The Node Lifecycle & Event Loop

  • کنترل فرآیند Node.js Controlling the Node.js Process

  • درک درخواست ها Understanding Requests

  • ارسال پاسخ ها Sending Responses

  • سرصفحه های درخواست و پاسخ Request & Response Headers

  • درخواست های مسیریابی Routing Requests

  • تغییر مسیر درخواست ها Redirecting Requests

  • تجزیه بدنه های درخواستی Parsing Request Bodies

  • درک اجرای کد مبتنی بر رویداد Understanding Event Driven Code Execution

  • کد مسدود و غیر مسدود Blocking and Non-Blocking Code

  • Node.js - نگاه کردن به پشت صحنه Node.js - Looking Behind the Scenes

  • با استفاده از سیستم ماژول های گره Using the Node Modules System

  • بسته شدن Wrap Up

  • زمان برای تمرین - مبانی Time to Practice - The Basics

  • منابع و لینک های مفید Useful Resources & Links

بهبود گردش کار توسعه و اشکال زدایی Improved Development Workflow and Debugging

  • معرفی ماژول Module Introduction

  • آشنایی با اسکریپت های NPM Understanding NPM Scripts

  • نصب بسته های شخص ثالث Installing 3rd Party Packages

  • ویژگی های جهانی در مقابل ماژول های اصلی در مقابل ماژول های شخص ثالث Global Features vs Core Modules vs Third-Party Modules

  • استفاده از Nodemon برای راه اندازی خودکار Using Nodemon for Autorestarts

  • بسته های جهانی و محلی npm Global & Local npm Packages

  • آشنایی با انواع مختلف خطا Understanding different Error Types

  • پیدا کردن و رفع خطاهای نحوی Finding & Fixing Syntax Errors

  • مقابله با خطاهای زمان اجرا Dealing with Runtime Errors

  • خطاهای منطقی Logical Errors

  • با استفاده از Debugger Using the Debugger

  • پس از ویرایش برنامه، دیباگر را مجدداً راه اندازی کنید Restarting the Debugger Automatically After Editing our App

  • اشکال زدایی Node.js در کد ویژوال استودیو Debugging Node.js in Visual Studio Code

  • تغییر متغیرها در کنسول Debug Changing Variables in the Debug Console

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با Express.js Working with Express.js

  • معرفی ماژول Module Introduction

  • Express.js چیست؟ What is Express.js?

  • در حال نصب Express.js Installing Express.js

  • افزودن میان افزار Adding Middleware

  • میان افزار چگونه کار می کند How Middleware Works

  • Express.js - نگاه کردن به پشت صحنه Express.js - Looking Behind the Scenes

  • مدیریت مسیرهای مختلف Handling Different Routes

  • زمان تمرین - Express.js Time to Practice - Express.js

  • تجزیه درخواست های ورودی Parsing Incoming Requests

  • محدود کردن اجرای میان‌افزار به درخواست‌های POST Limiting Middleware Execution to POST Requests

  • با استفاده از روتر اکسپرس Using Express Router

  • افزودن صفحه خطای 404 Adding a 404 Error Page

  • فیلتر کردن مسیرها Filtering Paths

  • ایجاد صفحات HTML Creating HTML Pages

  • ارائه صفحات HTML Serving HTML Pages

  • بازگرداندن صفحه 404 Returning a 404 Page

  • یک راهنما! A Hint!

  • استفاده از یک تابع کمکی برای ناوبری Using a Helper Function for Navigation

  • طراحی صفحات ما Styling our Pages

  • ارائه فایل ها به صورت ایستا Serving Files Statically

  • زمان برای تمرین - ناوبری Time to Practice - Navigation

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با محتوای پویا و اضافه کردن موتورهای قالب Working with Dynamic Content & Adding Templating Engines

  • معرفی ماژول Module Introduction

  • به اشتراک گذاری داده ها در میان درخواست ها و کاربران Sharing Data Across Requests & Users

  • موتورهای قالب - مروری Templating Engines - An Overview

  • نصب و پیاده سازی Pug Installing & Implementing Pug

  • خروجی محتوای پویا Outputting Dynamic Content

  • اسناد رسمی Pug Official Pug Docs

  • تبدیل فایل های HTML به Pug Converting HTML Files to Pug

  • اضافه کردن یک طرح Adding a Layout

  • در حال تکمیل قالب Pug Finishing the Pug Template

  • اجتناب از خطا Avoiding an Error

  • کار با دسته ها Working with Handlebars

  • تبدیل پروژه ما به Handlebars Converting our Project to Handlebars

  • اضافه کردن Layout به Handlebars Adding the Layout to Handlebars

  • کار با EJS Working with EJS

  • کار بر روی Layout با جزئی Working on the Layout with Partials

  • بسته شدن Wrap Up

  • زمان تمرین - قالب‌بندی موتورها Time to Practice - Templating Engines

  • [اختیاری] راه حل تکلیف [OPTIONAL] Assignment Solution

  • منابع و لینک های مفید Useful Resources & Links

کنترلر نمای مدل (MVC) The Model View Controller (MVC)

  • معرفی ماژول Module Introduction

  • MVC چیست؟ What is the MVC?

  • اضافه کردن کنترلرها Adding Controllers

  • تکمیل کنترلرها Finishing the Controllers

  • اضافه کردن مدل محصول Adding a Product Model

  • ذخیره داده ها در فایل ها از طریق مدل Storing Data in Files Via the Model

  • واکشی داده ها از فایل ها از طریق مدل Fetching Data from Files Via the Model

  • بازسازی کد ذخیره فایل Refactoring the File Storage Code

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

اختیاری: بهبود برنامه Optional: Enhancing the App

  • معرفی ماژول Module Introduction

  • ایجاد ساختار فروشگاه Creating the Shop Structure

  • کار بر روی ناوبری Working on the Navigation

  • ثبت مسیرها Registering the Routes

  • ذخیره سازی داده های محصول Storing Product Data

  • نمایش داده های محصول Displaying Product Data

  • ویرایش و حذف محصولات Editing & Deleting Products

  • افزودن یک مورد دیگر Adding Another Item

  • منابع و لینک های مفید Useful Resources & Links

مسیرهای پویا و مدل های پیشرفته Dynamic Routes & Advanced Models

  • معرفی ماژول Module Introduction

  • آماده سازی Preparations

  • تغییرات اعمال شده Applied Changes

  • افزودن شناسه محصول به مسیر Adding the Product ID to the Path

  • استخراج پارامترهای دینامیک Extracting Dynamic Params

  • بارگیری اطلاعات جزئیات محصول Loading Product Detail Data

  • نمایش جزئیات محصول Rendering the Product Detail View

  • انتقال داده با درخواست های POST Passing Data with POST Requests

  • اضافه کردن مدل سبد خرید Adding a Cart Model

  • استفاده از Query Params Using Query Params

  • از قبل پر کردن صفحه ویرایش محصول با داده ها Pre-Populating the Edit Product Page with Data

  • پیوند دادن به صفحه ویرایش Linking to the Edit Page

  • ویرایش اطلاعات محصول Editing the Product Data

  • افزودن عملکرد حذف محصول Adding the Product-Delete Functionality

  • حذف اقلام سبد خرید Deleting Cart Items

  • نمایش اقلام سبد خرید در صفحه سبد خرید Displaying Cart Items on the Cart Page

  • حذف اقلام سبد خرید Deleting Cart Items

  • رفع اشکال حذف محصول Fixing a Delete Product Bug

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

SQL مقدمه SQL Introduction

  • معرفی ماژول Module Introduction

  • انتخاب یک پایگاه داده Choosing a Database

  • معرفی NoSQL NoSQL Introduction

  • مقایسه SQL و NoSQL Comparing SQL and NoSQL

  • راه اندازی MySQL Setting Up MySQL

  • اتصال برنامه ما به پایگاه داده SQL Connecting our App to the SQL Database

  • SQL اولیه و ایجاد جدول Basic SQL & Creating a Table

  • بازیابی داده ها Retrieving Data

  • واکشی محصولات Fetching Products

  • واکشی محصولات - زمان تمرین Fetching Products - Time to Practice

  • درج داده ها در پایگاه داده Inserting Data Into the Database

  • واکشی یک محصول واحد با شرایط "کجا". Fetching a Single Product with the "where" Condition

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

درک Sequelize Understanding Sequelize

  • معرفی ماژول Module Introduction

  • Sequelize چیست؟ What is Sequelize?

  • اتصال به پایگاه داده Connecting to the Database

  • تعریف مدل Defining a Model

  • همگام سازی تعاریف JS با پایگاه داده Syncing JS Definitions to the Database

  • درج داده ها و ایجاد یک محصول Inserting Data & Creating a Product

  • باید بخوانید: findById() در Sequelize 5 MUST READ: findById() in Sequelize 5

  • بازیابی داده ها و یافتن محصولات Retrieving Data & Finding Products

  • دریافت یک محصول واحد با شرایط "کجا". Getting a Single Product with the "where" Condition

  • واکشی محصولات مدیریت Fetching Admin Products

  • به روز رسانی محصولات Updating Products

  • حذف محصولات Deleting Products

  • ایجاد یک مدل کاربر Creating a User Model

  • افزودن یک رابطه یک به چند Adding a One-To-Many Relationship

  • ایجاد و مدیریت یک کاربر ساختگی Creating & Managing a Dummy User

  • استفاده از روش های انجمن جادویی Using Magic Association Methods

  • واکشی محصولات مرتبط Fetching Related Products

  • روابط یک به چند و چند به چند One-To-Many & Many-To-Many Relations

  • ایجاد و واکشی یک سبد خرید Creating & Fetching a Cart

  • افزودن محصولات جدید به سبد خرید Adding New Products to the Cart

  • افزودن محصولات موجود و بازیابی اقلام سبد خرید Adding Existing Products & Retrieving Cart Items

  • حذف اقلام مرتبط و حذف محصولات سبد خرید Deleting Related Items & Deleting Cart Products

  • اضافه کردن یک مدل سفارش Adding an Order Model

  • ذخیره کارتیت به عنوان کالای سفارشی Storing Cartitems as Orderitems

  • بازنشانی سبد خرید و واکشی و خروجی سفارشات Resetting the Cart & Fetching and Outputting Orders

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با NoSQL و استفاده از MongoDB Working with NoSQL & Using MongoDB

  • معرفی ماژول Module Introduction

  • MongoDB چیست؟ What is MongoDB?

  • روابط در NoSQL Relations in NoSQL

  • راه اندازی MongoDB Setting Up MongoDB

  • نصب درایور MongoDB Installing the MongoDB Driver

  • ایجاد اتصال پایگاه داده Creating the Database Connection

  • اتمام اتصال پایگاه داده Finishing the Database Connection

  • با استفاده از اتصال پایگاه داده Using the Database Connection

  • ایجاد محصولات Creating Products

  • آشنایی با قطب نما MongoDB Understanding the MongoDB Compass

  • واکشی همه محصولات Fetching All Products

  • واکشی یک محصول واحد Fetching a Single Product

  • دوباره کار کردن دکمه‌های «ویرایش» و «حذف». Making the "Edit" & "Delete" Buttons Work Again

  • کار بر روی مدل محصول برای ویرایش محصول ما Working on the Product Model to Edit our Product

  • تکمیل کد "به روز رسانی محصول". Finishing the "Update Product" Code

  • یک نکته درباره به روز رسانی محصولات One Note About Updating Products

  • حذف محصولات Deleting Products

  • رفع عملکرد "افزودن محصول". Fixing the "Add Product" Functionality

  • ایجاد کاربران جدید Creating New Users

  • ذخیره کاربر در پایگاه داده ما Storing the User in our Database

  • کار بر روی اقلام و سفارشات سبد خرید Working on Cart Items & Orders

  • افزودن قابلیت "افزودن به سبد خرید". Adding the "Add to Cart" Functionality

  • ذخیره چندین محصول در سبد خرید Storing Multiple Products in the Cart

  • نمایش اقلام سبد خرید Displaying the Cart Items

  • رفع اشکال Fixing a Bug

  • حذف اقلام سبد خرید Deleting Cart Items

  • افزودن یک سفارش Adding an Order

  • افزودن داده های سفارش رابطه ای Adding Relational Order Data

  • دریافت سفارشات Getting Orders

  • حذف اقلام حذف شده از سبد خرید Removing Deleted Items From the Cart

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

  • دو تنظیم (پشت صحنه) Two Adjustments (behind the scenes)

کار با Mongoose Working with Mongoose

  • معرفی ماژول Module Introduction

  • Mongoose چیست؟ What is Mongoose?

  • اتصال به سرور MongoDB با Mongoose Connecting to the MongoDB Server with Mongoose

  • ایجاد طرحواره محصول Creating the Product Schema

  • ذخیره داده ها از طریق Mongoose Saving Data Through Mongoose

  • واکشی همه محصولات Fetching All Products

  • واکشی یک محصول واحد Fetching a Single Product

  • به روز رسانی محصولات Updating Products

  • حذف محصولات Deleting Products

  • اضافه کردن و استفاده از یک مدل کاربر Adding and Using a User Model

  • استفاده از روابط در Mongoose Using Relations in Mongoose

  • یک چیز مهم در مورد واکشی روابط One Important Thing About Fetching Relations

  • کار بر روی سبد خرید Working on the Shopping Cart

  • در حال بارگیری سبد خرید Loading the Cart

  • حذف اقلام سبد خرید Deleting Cart Items

  • ایجاد و دریافت سفارشات Creating & Getting Orders

  • ذخیره تمام داده های مربوط به سفارش Storing All Order Related Data

  • پاک کردن سبد پس از ذخیره یک سفارش Clearing the Cart After Storing an Order

  • دریافت و نمایش سفارشات Getting & Displaying the Orders

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

جلسات و کوکی ها Sessions & Cookies

  • معرفی ماژول Module Introduction

  • کوکی چیست؟ What is a Cookie?

  • وضعیت فعلی پروژه The Current Project Status

  • اختیاری: ایجاد فرم ورود Optional: Creating the Login Form

  • افزودن راه حل ورود به سیستم درخواستی Adding the Request Driven Login Solution

  • تنظیم یک کوکی Setting a Cookie

  • دستکاری کوکی ها Manipulating Cookies

  • پیکربندی کوکی ها Configuring Cookies

  • Session چیست؟ What is a Session?

  • راه اندازی Session Middleware Initializing the Session Middleware

  • استفاده از Session Middleware Using the Session Middleware

  • استفاده از MongoDB برای ذخیره جلسات Using MongoDB to Store Sessions

  • جلسات و کوکی ها - خلاصه ای کوتاه Sessions & Cookies - A Short Summary

  • زمان تمرین - جلسات و کوکی ها Time to Practice - Sessions and Cookies

  • حذف یک کوکی Deleting a Cookie

  • رفع برخی اشکالات جزئی Fixing Some Minor Bugs

  • ایجاد "افزودن به سبد خرید" دوباره کار کند Making "Add to Cart" Work Again

  • دو پیشرفت کوچک Two Tiny Improvements

  • بسته شدن Wrap Up

  • تنظیمات کد Code Adjustments

  • منابع و لینک های مفید Useful Resources & Links

افزودن احراز هویت Adding Authentication

  • معرفی ماژول Module Introduction

  • احراز هویت چیست؟ What is Authentication?

  • احراز هویت چگونه پیاده سازی می شود؟ How is Authentication Implemented?

  • وضعیت پروژه به روز شده ما Our Updated Project Status

  • پیاده سازی یک جریان احراز هویت Implementing an Authentication Flow

  • رمزگذاری رمزهای عبور Encrypting Passwords

  • افزودن یک بهبود کد کوچک Adding a Tiny Code Improvement

  • افزودن قابلیت ورود Adding the Signin Functionality

  • کار بر روی Route Protection Working on Route Protection

  • استفاده از میان افزار برای محافظت از مسیرها Using Middleware to Protect Routes

  • آشنایی با حملات CSRF Understanding CSRF Attacks

  • استفاده از توکن CSRF Using a CSRF Token

  • افزودن محافظ CSRF Adding CSRF Protection

  • csurf() جایگزین csurf() Alternatives

  • تعمیر دکمه سفارش Fixing the Order Button

  • ارائه بازخورد کاربر Providing User Feedback

  • اختیاری: پیام‌های خطای استایل‌سازی Optional: Styling Error Messages

  • اتمام پیام های فلش Finishing the Flash Messages

  • افزودن پیام های فلش اضافی Adding Additional Flash Messages

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

ارسال ایمیل Sending Emails

  • معرفی ماژول Module Introduction

  • ارسال ایمیل چگونه کار می کند؟ How Does Sending Emails Work?

  • با استفاده از SendGrid Using SendGrid

  • استفاده از Nodemailer برای ارسال ایمیل Using Nodemailer to Send an Email

  • محدودیت بالقوه برای برنامه های در مقیاس بزرگ Potential Limitation for Large Scale Apps

  • منابع و لینک های مفید Useful Resources & Links

احراز هویت پیشرفته Advanced Authentication

  • معرفی ماژول Module Introduction

  • بازنشانی رمزهای عبور Resetting Passwords

  • پیاده سازی منطق توکن Implementing the Token Logic

  • ایجاد توکن Creating the Token

  • ایجاد فرم بازنشانی رمز عبور Creating the Reset Password Form

  • اضافه کردن منطق برای به روز رسانی رمز عبور Adding Logic to Update the Password

  • چرا به مجوز نیاز داریم Why we Need Authorization

  • اضافه کردن مجوز Adding Authorization

  • افزودن محافظت به Post Actions Adding Protection to Post Actions

  • چرا ویرایش ناموفق است Why Editing Fails

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

درک اعتبارسنجی Understanding Validation

  • معرفی ماژول Module Introduction

  • چرا باید از اعتبارسنجی استفاده کنیم؟ Why Should We Use Validation?

  • چگونه ورودی را تایید کنیم؟ How to Validate Input?

  • راه اندازی و اعتبارسنجی پایه Setup & Basic Validation

  • استفاده از پیام های خطای اعتبارسنجی Using Validation Error Messages

  • اعتبار سنجی داخلی و سفارشی Built-In & Custom Validators

  • اعتبار سنجی های بیشتر More Validators

  • بررسی برابری میدان Checking For Field Equality

  • افزودن اعتبارسنجی Async Adding Async Validation

  • زمان تمرین - اعتبارسنجی Time to Practice - Validation

  • حفظ ورودی کاربر Keeping User Input

  • اضافه کردن کلاس های CSS شرطی Adding Conditional CSS Classes

  • افزودن اعتبارسنجی به ورود Adding Validation to Login

  • داده های بهداشتی Sanitizing Data

  • اعتبار افزودن محصول Validating Product Addition

  • تایید ویرایش محصول Validating Product Editing

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

رسیدگی به خطا Error Handling

  • معرفی ماژول Module Introduction

  • انواع خطاها و مدیریت خطا Types of Errors & Error Handling

  • تجزیه و تحلیل مدیریت خطا در پروژه فعلی Analyzing the Error Handling in the Current Project

  • خطاها - برخی نظریه ها Errors - Some Theory

  • پرتاب خطا در کد Throwing Errors in Code

  • بازگشت صفحات خطا Returning Error Pages

  • با استفاده از میان افزار مدیریت خطای Express.js Using the Express.js Error Handling Middleware

  • به روز رسانی برنامه Updating the App

  • استفاده صحیح از Error Handling Middleware Using the Error Handling Middleware Correctly

  • کدهای وضعیت Status Codes

  • کدهای وضعیت موجود Available Status Codes

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

آپلود و دانلود فایل File Upload & Download

  • معرفی ماژول Module Introduction

  • افزودن یک فایل انتخابگر به Frontend Adding a File Picker to the Frontend

  • مدیریت داده های فرم چند بخشی Handling Multipart Form Data

  • مدیریت آپلود فایل با مولتر Handling File Uploads with Multer

  • پیکربندی مولتر برای تنظیم نام فایل و مسیر فایل Configuring Multer to Adjust Filename & Filepath

  • فیلتر کردن فایل ها بر اساس Mimetype Filtering Files by Mimetype

  • ذخیره اطلاعات فایل در پایگاه داده Storing File Data in the Database

  • imageUrl را از «افزودن محصول» حذف کنید Remove imageUrl from "Add Product"

  • ارائه تصاویر به صورت ایستا Serving Images Statically

  • دانلود فایل ها با احراز هویت Downloading Files with Authentication

  • تنظیم هدرهای نوع فایل Setting File Type Headers

  • محدود کردن دسترسی به فایل Restricting File Access

  • جریان داده در مقابل بارگیری از قبل داده Streaming Data vs Preloading Data

  • استفاده از PDFKit برای .pdf Generation Using PDFKit for .pdf Generation

  • تولید فایل‌های pdf با داده‌های سفارش Generating .pdf Files with Order Data

  • حذف فایل ها Deleting Files

  • رفع لینک های فاکتور Fixing Invoice Links

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

اضافه کردن صفحه بندی Adding Pagination

  • معرفی ماژول Module Introduction

  • افزودن لینک های صفحه بندی Adding Pagination Links

  • بازیابی تکه ای از داده ها Retrieving a Chunk of Data

  • پرش و محدود کردن با SQL Skip & Limit with SQL

  • آماده سازی داده های صفحه بندی روی سرور Preparing Pagination Data on the Server

  • اضافه کردن دکمه های صفحه بندی پویا Adding Dynamic Pagination Buttons

  • استفاده مجدد از منطق و کنترل های صفحه بندی Re-Using the Pagination Logic & Controls

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

درک درخواست های Async Understanding Async Requests

  • معرفی ماژول Module Introduction

  • درخواست های Async چیست؟ What are Async Requests?

  • افزودن کد JS سمت مشتری Adding Client Side JS Code

  • فرمت داده JSON The JSON Data Format

  • ارسال و رسیدگی به درخواست های پس زمینه Sending & Handling Background Requests

  • دستکاری DOM Manipulating the DOM

  • منابع و لینک های مفید Useful Resources & Links

افزودن پرداخت ها Adding Payments

  • معرفی ماژول Module Introduction

  • نحوه کار پرداخت ها How Payments Work

  • افزودن صفحه پرداخت Adding a Checkout Page

  • استفاده از Stripe در برنامه شما Using Stripe in Your App

  • منابع و لینک های مفید Useful Resources & Links

کار با REST API - اصول Working with REST APIs - The Basics

  • معرفی ماژول Module Introduction

  • REST API چیست و چرا از آنها استفاده می کنیم؟ What are REST APIs and why do we use Them?

  • دسترسی به داده ها با REST API Accessing Data with REST APIs

  • آشنایی با روش‌های مسیریابی و HTTP Understanding Routing & HTTP Methods

  • REST API - اصول اصلی REST APIs - The Core Principles

  • ایجاد پروژه REST API ما و اجرای راه‌اندازی مسیر Creating our REST API Project & Implementing the Route Setup

  • ارسال درخواست و پاسخ و کار با پستچی Sending Requests & Responses and Working with Postman

  • REST API ها، مشتریان و خطاهای CORS REST APIs, Clients & CORS Errors

  • ارسال درخواست های POST Sending POST Requests

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با REST API - کاربرد عملی Working with REST APIs - The Practical Application

  • معرفی ماژول Module Introduction

  • REST API و بقیه دوره REST APIs & The Rest Of The Course

  • آشنایی با تنظیمات Frontend Understanding the Frontend Setup

  • برنامه ریزی API Planning the API

  • واکشی لیست پست ها Fetching Lists of Posts

  • افزودن نقطه پایانی ایجاد پست Adding a Create Post Endpoint

  • افزودن اعتبار سنجی سمت سرور Adding Server Side Validation

  • راه اندازی یک مدل پست Setting Up a Post Model

  • ذخیره پست ها در پایگاه داده Storing Posts in the Database

  • تصاویر استاتیک و مدیریت خطا Static Images & Error Handling

  • واکشی یک پست واحد Fetching a Single Post

  • نام تصاویر و ویندوز Image Names & Windows

  • آپلود تصاویر Uploading Images

  • به روز رسانی پست ها Updating Posts

  • حذف پست ها Deleting Posts

  • اضافه کردن صفحه بندی Adding Pagination

  • اضافه کردن یک مدل کاربر Adding a User Model

  • افزودن اعتبار ثبت نام کاربر Adding User Signup Validation

  • ثبت نام کاربران Signing Users Up

  • احراز هویت چگونه کار می کند؟ How Does Authentication Work?

  • با ورود کاربر شروع می شود Starting with User Login

  • ورود به سیستم و ایجاد رمزهای وب JSON (JWT) Logging In & Creating JSON Web Tokens (JWTs)

  • استفاده و اعتبارسنجی توکن Using & Validating the Token

  • افزودن Auth Middleware به همه مسیرها Adding Auth Middleware to All Routes

  • اتصال پست ها و کاربران Connecting Posts & Users

  • افزودن چک های مجوز Adding Authorization Checks

  • پاک کردن روابط پس از کاربر Clearing Post-User Relations

  • زمان برای تمرین - کار با API های REST Time to Practice - Working with REST APIs

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

آشنایی با Async Await در Node.js Understanding Async Await in Node.js

  • معرفی ماژول Module Introduction

  • Async Await All about چیست؟ What is Async Await All About?

  • تبدیل "سپس بگیر" به "همگام در انتظار" Transforming "Then Catch" to "Async Await"

  • سطح بالا "انتظار" Top-level "await"

  • زمان تمرین - انتظار Async Time to Practice - Async Await

  • نام کاربری گم شده است! The User Name is Missing!

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

آشنایی با Websockets & Socket.io Understanding Websockets & Socket.io

  • معرفی ماژول Module Introduction

  • سوکت های وب چیست و چرا از آنها استفاده می کنید؟ What Are Websockets & Why Would You Use Them?

  • راه حل های Websocket - یک مرور کلی Websocket Solutions - An Overview

  • راه اندازی Socket.io در سرور Setting Up Socket.io on the Server

  • ایجاد ارتباط از سوی مشتری Establishing a Connection From the Client

  • شناسایی پتانسیل بلادرنگ Identifying Realtime Potential

  • به اشتراک گذاری نمونه IO در میان فایل ها Sharing the IO Instance Across Files

  • همگام سازی اضافات POST Synchronizing POST Additions

  • رفع اشکال - نام کاربری گمشده Fixing a Bug - The Missing Username

  • به روز رسانی پست ها در همه مشتریان متصل Updating Posts On All Connected Clients

  • مرتب سازی صحیح Sorting Correctly

  • حذف پست ها در میان مشتریان Deleting Posts Across Clients

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با GraphQL Working with GraphQL

  • معرفی ماژول Module Introduction

  • GraphQL چیست؟ What is GraphQL?

  • درک راه اندازی و نوشتن اولین پرس و جو ما Understanding the Setup & Writing our First Query

  • تعریف طرحواره جهش Defining a Mutation Schema

  • اضافه کردن Motation Resolver و GraphiQL Adding a Mutation Resolver & GraphiQL

  • افزودن اعتبار سنجی ورودی Adding Input Validation

  • رسیدگی به خطاها Handling Errors

  • اتصال Frontend به GraphQL API Connecting the Frontend to the GraphQL API

  • اضافه کردن یک جستجوی ورود و یک حل کننده Adding a Login Query & a Resolver

  • افزودن قابلیت ورود به سیستم Adding Login Functionality

  • افزودن جهش ایجاد پست Adding a Create Post Mutation

  • استخراج داده های کاربر از توکن Auth Extracting User Data From the Auth Token

  • ارسال پرس و جو "ایجاد پست". Sending the "Create Post" Query

  • رفع اشکال و افزودن پست های جدید به درستی Fixing a Bug & Adding New Posts Correctly

  • افزودن یک پرسش و پاسخ "دریافت پست". Adding a "Get Post" Query & Resolver

  • ارسال عبارت "ایجاد پست" و "دریافت پست". Sending "Create Post" and "Get Post" Queries

  • اضافه کردن صفحه بندی Adding Pagination

  • آپلود تصاویر Uploading Images

  • واکشی imageUrl Fetching the imageUrl

  • مشاهده یک پست واحد Viewing a Single Post

  • به روز رسانی پست ها Updating Posts

  • حذف پست ها Deleting Posts

  • افزودن پست ها و صفحه بندی Adding Posts & Pagination

  • مدیریت وضعیت کاربر Managing the User Status

  • استفاده از متغیرها Using Variables

  • رفع اشکال صفحه بندی Fixing a Pagination Bug

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

استقرار برنامه ما Deploying our App

  • معرفی ماژول Module Introduction

  • استقرار انواع مختلف برنامه ها Deploying Different Kinds of Apps

  • آماده سازی استقرار Deployment Preparations

  • استفاده از متغیرهای محیطی Using Environment Variables

  • با استفاده از کلیدهای API تولید Using Production API Keys

  • تنظیم هدرهای پاسخ ایمن با کلاه ایمنی Setting Secure Response Headers with Helmet

  • فشرده سازی دارایی ها Compressing Assets

  • راه اندازی ثبت درخواست Setting Up Request Logging

  • اطلاعات بیشتر در مورد ورود به سیستم More on Logging

  • راه اندازی سرور SSL Setting Up a SSL Server

  • استفاده از ارائه دهنده هاست Using a Hosting Provider

  • آشنایی با پروژه و تنظیم گیت Understanding the Project & the Git Setup

  • یک مثال استقرار با Heroku A Deployment Example with Heroku

  • ذخیره فایل های تولید شده توسط کاربر در Heroku Storing User-generated Files on Heroku

  • استقرار API ها Deploying APIs

  • منابع و لینک های مفید Useful Resources & Links

آزمایش برنامه های Node.js Testing Node.js Applications

  • معرفی ماژول Module Introduction

  • تست چیست؟ What is Testing?

  • چرا و چگونه؟ Why & How?

  • راه اندازی و نوشتن اولین تست Setup and Writing a First Test

  • تست میان افزار Auth Testing the Auth Middleware

  • سازماندهی آزمون های متعدد Organizing Multiple Tests

  • چه چیزی را نباید تست کرد! What Not To Test!

  • استفاده از Stubs Using Stubs

  • کنترل کننده های تست Testing Controllers

  • تست کد ناهمزمان Testing Asynchronous Code

  • راه اندازی پایگاه داده تست Setting up a Testing Database

  • تست کد با یک پایگاه داده فعال Testing Code With An Active Database

  • تمیز کردن Cleaning Up

  • قلاب Hooks

  • کد آزمایشی که نیاز به احراز هویت دارد Testing Code That Requires Authentication

  • جمع بندی و تسلط بر تست ها Wrap Up & Mastering Tests

  • منابع و لینک های مفید Useful Resources & Links

Node.js به عنوان ابزار ساخت و استفاده از npm Node.js as a Build Tool & Using npm

  • معرفی ماژول Module Introduction

  • npm و Node.js npm & Node.js

  • با استفاده از npm Using npm

  • نسخه در package.json Versioning in package.json

  • ابزار ساخت چیست؟ What is a Build Tool?

  • استفاده از Node.js در Build Processes Using Node.js in Build Processes

  • منابع و لینک های مفید Useful Resources & Links

جاوا اسکریپت و NodeJS مدرن Modern JavaScript & NodeJS

  • معرفی ماژول Module Introduction

  • این ماژول در مورد چیست؟ What is this Module About?

  • کار با ES Modules & Node Working with ES Modules & Node

  • اطلاعات بیشتر در مورد ماژول های ES More on ES Modules

  • Node Core Modules & Promises Node Core Modules & Promises

  • منابع ماژول Module Resources

NodeJS و TypeScript NodeJS & TypeScript

  • معرفی ماژول Module Introduction

  • TypeScript: چی و چرا؟ TypeScript: What & Why?

  • راه اندازی TypeScript TypeScript Setup

  • تعیین انواع Assigning Types

  • نوع استنتاج و نوع ریخته گری Type Inference & Type Casting

  • پیکربندی TypeScript Configuring TypeScript

  • کار با Union Types Working with Union Types

  • استفاده از انواع شی و آرایه Using Object & Array Types

  • کار با نام مستعار نوع و رابط Working with Type Aliases & Interfaces

  • درک ژنریک Understanding Generics

  • اولین خلاصه A First Summary

  • Node & TypeScript: راه اندازی Node & TypeScript: Setup

  • شروع کار با Node و TypeScript Getting Started with Node and TypeScript

  • نوشتن کد TypeScript Express.js Writing TypeScript Express.js Code

  • اضافه کردن مسیرهای REST با TypeScript Adding REST Routes with TypeScript

  • اتمام مسیرهای REST Finishing the REST Routes

  • تست API Testing the API

  • با استفاده از Type Casting Using Type Casting

  • حرکت به سمت ساختار پروژه بهتر Moving to a Better Project Structure

  • بسته شدن Wrap Up

  • منابع ماژول Module Resources

مقدمه ای بر Deno An Introduction to Deno

  • معرفی ماژول Module Introduction

  • دنو چیست؟ What is Deno?

  • چرا دنو؟ Why Deno?

  • Deno Setup Deno Setup

  • نوشتن اولین کد دنو Writing First Deno Code

  • API Deno Runtime (Namespace). The Deno Runtime (Namespace) API

  • با استفاده از Runtime API Using the Runtime API

  • کار با Deno Permissions Working with Deno Permissions

  • تکرار مثال با Node Repeating the Example with Node

  • ویژگی های Deno چگونه سازماندهی می شوند How Deno Features Are Organized

  • با استفاده از کتابخانه استاندارد Using the Standard Library

  • ایجاد یک وب سرور Creating a Webserver

  • استفاده از Oak Framework با Deno Using the Oak Framework with Deno

  • اطلاعات بیشتر در مورد URL های ماژول More on Module URLs

  • یک نمونه Node REST API An Example Node REST API

  • بازسازی REST API با Deno Re-building the REST API with Deno

  • آیا باید از Node به Deno تغییر دهید؟ Should You Switch From Node to Deno?

  • منابع ماژول Module Resources

Deno، CRUD و پایگاه‌های داده (MongoDB) Deno, CRUD & Databases (MongoDB)

  • معرفی ماژول Module Introduction

  • راه اندازی برنامه App Setup

  • رسیدگی به خطاهای CORS Handling CORS Errors

  • اتصال Deno به MongoDB Connecting Deno to MongoDB

  • با استفاده از ماژول مشتری MongoDB Using the MongoDB Client Module

  • اتمام عملیات Deno MongoDB CRUD Finishing the Deno MongoDB CRUD Operations

  • بسته شدن Wrap Up

  • منابع ماژول Module Resources

جمع بندی Roundup

  • خلاصه دوره Course Roundup

  • اسلایدهای دوره Course Slides

  • امتیاز: محتوای بیشتر! Bonus: More Content!

نمایش نظرات

نظری ارسال نشده است.

آموزش NodeJS - راهنمای کامل (MVC، REST API، GraphQL، Deno)
خرید اشتراک و دانلود خرید تکی و دانلود | 480,000 تومان (7 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 4 دوره است و 4 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
40.5 hours
543
Udemy (یودمی) udemy-small
10 اسفند 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
207,834
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Academind by Maximilian Schwarzmüller Academind by Maximilian Schwarzmüller

آموزش آنلاین

Maximilian Schwarzmüller Maximilian Schwarzmüller

دارای گواهینامه AWS، توسعه دهنده وب و مدرس حرفه ای

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.