
آموزش Node.js | دوره تخصصی برای تبدیل شدن به برنامه نویس نود جی اس
آموزش Node.js برای توسعه کار با زبان جاوا اسکریپت به کارت میاد. زمانی که بخوای از جاوا اسکریپت در سمت سرور استفاده کنی و به یک پلتفرم قدرتمند نیاز داری، در چنین شرایطی هست که میتونی تمام قد بر قابلیتهای جذاب و کاربردی Node.js حساب باز کنی.
برنامه نویس های حرفهای همگی از اهمیت جاوا اسکریپت سمت کاربر اطلاع دارند. اینکه این زبان تا چه اندازه دست باز و قدرتمند برای کد نویسی Front end کارایی داره و برای پویاسازی صفحات وب استفاده میشه. اما ماجرا وقتی جذابتر هست که بدونی از قدرت جاوا اسکریپت در سمت سرور هم استفاده میکنند. پلتفرم Node.js برای این منظور است. پلتفرمی که بر پایه موتور جاوا اسکریپت توسعه پیدا کرده و بهت کمک میکنه تا در محیط بک اند (Back end) خیلی دست باز کد نویسی کنی. من علی رضایی در گروه گاتاکد دوره آموزش Node.js رو تهیه کردم تا قدم به قدم بهت کمک کنم که بتونی مهارت کار با جاوا اسکریپت رو توسعه بدی و برنامهنویس Back end ماهرتری باشی.
Node.js چیه؟ چه کاربردی داره؟
قبل از هر چیز باید بدونی که Node.js اصلاً یه فریم ورک نیست، بلکه یه پلتفرم هست که برای توسعه سمت سرور و مبتنی بر موتور جاوا اسکریپت گوگل کروم (78 Engine) توسعه پیدا کرده و برای استفاده از جاوا اسکریپت در سمت بک اند کارایی داره. Node.js در سال 2009 معرفی شده و هدفش استفاده از زبان جاوا اسکریپت سمت سرور هست. در واقع اگه بخوای از زبان قدرتمند و پویای جاوا اسکریپت سمت سرور استفاده کنی، لازمه تا مهارت کار با Node.js رو کامل بلد باشی. خیلی ساده پلتفرم Node.js محیطی رو فراهم میکنه تا زبان برنامه نویسی جاوا اسکریپت به جای اجرا در مرورگر برای سمت سرور اجرا بشه. به همین شکل میتونی با استفاده از Node.js و خیلی ساده برنامههای تحت شبکه مقیاس پذیر و خیلی بزرگ رو طراحی کنی. البته مهمه که در قدم اول آموزش نود جی اس رو جدی بگیری و به محیط کار این پلتفرم مسلط باشی.
چرا باید آموزش Node.js رو جدی بگیری؟
پلتفرم Node.js محبوب هست، چون بازدهی و انعطافپذیری خیلی بالایی داره و کار کد نویسی سمت سرور رو خیلی سادهتر میکنه. اگه برنامه نویس بک اند باشی، قطعاً میدونی که این فضا چه محیط خشک، خسته و گیج کننده داره. قطعاً برات مهمه که بتونی از زبانهای قدرتمند با کد نویسی خیلی سادهتر در محیط بک اند استفاده کنی. پلتفرم Node.js این قابلیت رو بهت هدیه میده. چون:
- Node.js بازدهی و انعطاف پذیری بسیار بالایی داره.
- از قابلیت ترکیب شدن با میکرو سرویسها پشتیبانی میکنه.
- برای هر چه کاربردیتر شدن زبان جاوا اسکریپت طراحی شده و سرعت و قدرت واقعی جاوا اسکریپت رو به شما هدیه میکنه.
- بهت اجازه میده تا با یه زبان (جاوا اسکریپت) در هر دو سمت بک اند و فرانت اند کد نویسی کنی و این شکلی فرصت خلق پروژههای یکپارچه رو در اختیار داری.
- بازار کار خیلی خوب در دنیای وب برای توسعه در هر دو سمت بک اند و فرانت اند داره.
منظور از پلتفرم در Node.js چیه؟
مهمترین نکته برای برنامه نویسی Node.js این هست که مفهوم پلتفرم رو درک کنی. خیلیها به اشتباه فکر میکنن که Node.js نوعی فریم ورک در محیط جاوا اسکریپت هست. در صورتی که برعکس و قراره تا جاوا اسکریپت در محیط Node.js اجرا بشه.
پلتفرم یه بستره که زمینه اجرای نرمافزارهای مختلف رو فراهم میکنه. خیلی ساده شما برای فوتبال بازی کردن به یه زمین صاف و بزرگ و مستطیلی شکل با دو دروازه نیاز داری! در غیر این صورت چطور میخوای بازی کنی؟ با همین مثال ساده میتونی مفهوم پلتفرم رو درک کنی. مثل ویندوز و یا اندروید که هر کدوم پلتفرم برای اجرای خیلی از نرمافزارها هستند. Node.js هم دقیقاً همین نقش رو برای کد نویسی جاوا اسکریپت داره. چون بستر اجرای جاوا اسکریپت رو در سمت سرور فراهم میکنه. به همین سادگی اگه بخوای از زبان قدرتمند جاوا اسکریپت سمت سرور استفاده کنی، باید قبلش بستر رو فراهم کرده باشی. Node.js همون بستر قدرتمند و کاربردی هست که باعث میشه تا دست بازتر برای کد نویسی جاوا اسکریپت حاضر باشی و قدرتمندتر کار کنی.
پیش نیاز آموزش Node.js چیه؟
همانطورکه متوجه شدید Node.js فقط یه پلتفرم قدرتمند برای اجرای جاوا اسکریپت سمت سرور هست. پس منطقیه که برای افرادی که مهارت کار با جاوا اسکریپت رو دارند، کارایی داشته باشه. افرادی که قصد دارند تا دوره آموزش نود جی اس رو شروع کنند، بهتره که قبلش از تسلط کافی در محیط جاوا اسکریپت برخوردار باشند.
اگه در جاوا اسکریپت هنوز کامل مسلط نیستی و درک دقیقی از محیط کد نویسی جاوا نداری، بهتره که برای آموزش Node.js اقدام نکنی. بهت توصیه میکنم که یادگیری و تسلط خودت بر کد نویسی جاوا اسکریپت سمت کاربر (Front end) رو توسعه بدی و وقتی به اندازهی کافی در اون بخش ماهر شدی، برای استفاده از جاوا سمت Back end اقدام کنی. در همین مرحله هم لازمه تا آموزش Node.js رو جدی بگیری و مهارت خودت سمت سرور رو توسعه بدی.
سرفصل ها در دوره آموزش Node.js گاتاکد
اصول آموزش Node.js باید در تعامل با جاوا اسکریپت باشه. پس اینطور نیست که بخواین یه فضای کاملاً مستقل و بدون پسزمینه جاوا اسکریپت رو یاد بگیرید. به یاد داشته باشید که شما در پلتفرم Node.js برای اجرای جاوا اسکریپت سمت سرور کد نویسی میکنین و لازمه تا دوره آموزش نود جی اس رو متکی بر نقشه راه جاوا یاد بگیرید. نکته کلیدی که در برنامه آموزش Node.js گاتاکد مورد توجه جدی قرار گرفته تا با مفاهیم کاملاً عملیاتی از این فضا آشنا بشوید.
خوشبختانه به راحتی میتوانید محیط Node.js رو در سیستم نصب و راهاندازی کنید. هر چند آموزش نود جی اس رو از همین مرحله نصب از طریق وبسایت Nodejs.org آغاز میکنیم. پس از نصب برنامه Node.js فاز جدی آموزش شروع میشه. سرفصلهای آموزش برنامه نویسی Node.js در گاتاکد به قرار زیر هست:
آشنایی با ماژولها در Node.js
اولین مرحله یادگیری Node.js آشنایی با ماژول ها در این پلتفرم هست. در واقع برای Node.js سه نوع ماژول هسته، محلی و طرف سوم تعریف شده که لازمه تا در همین قدم اول آموزش نود جی اس با آنها آشنا بشی و بدونی که برای چه کارهایی مناسب هستند.
ماژولهای هسته Node
یه سری ماژول هست که در هسته اصلی Node تعریف شده تا تنها با Require کردن داخل فایل جاوا اسکریپت در دسترس باشند. در این مرحله یاد میگیری که چطور از این ماژولها برای کار با محیط HTTP و یا رمزنگاری و کار با استریم و خیلی چیزهای دیگه استفاده کنی.
ماژولهای محلی (Local Module)
در قدم بعدی یاد میگیری که چطور کد نویسیهای خودت رو به ماژولهای محلی در محیط Node تبدیل کنی و بعدها در بخشهای مختلف پروژه از همین کدها استفاده کنی. کافیه کار با ماژولهای محلی رو به خوبی یاد بگیری تا پروژههای خیلی منظمتر و خواناتر رو کد نویسی کنی.
ماژولهای طرف سوم (Third-Party Module)
در محیط نود این فرصت رو داری که از ماژولهای کد نویسی شده دیگران هم استفاده کنی. برای این کار بخش ماژولهای طرف سوم قرار داره و بهت یاد میدم که چطور دست بازتر برای استفاده از تجربه دیگران در کد نویسی جاوا اسکریپت حاضر باشی و پروژههای هر چه حرفهایتر رو طراحی کنی.
آشنایی با پکیج منیجر (NPM)
در قدم بعدی از آموزش Node.js با مفهوم پکیجهای NPM آشنا میشی و یاد میگیری که چطور این پکیجها رو مدیریت کنید. اصول کار با ترمینالهای NPM و آشنایی با دستورات در این بخش برای مدیریت NPM قرار داره که با جزئیات مهارت کار با آنها رو یاد میگیرید.
آموزش دیباگ کردن پروژه
در قدم بعدی باید با اصول دیباگ کردن در پروژههای جاوا اسکریپت در کد نویسی Node.js آشنا بشید. این مرحله برای برطرف کردن مشکلات احتمالی شما هست. یاد میگیری که فایلهای پروژه Node رو با استفاده از ویرایشگر یا مرورگر دیباگ کنی تا از ایجاد مشکلات احتمالی جلوگیری بشه.
یادگیری اصولی ساخت وب سرور
بخش جذاب برنامه نویسی Node.js توانایی خلق وب سرورها هست. پلتفرم Node.js آنقدر قدرتمند و دست باز طراحی شده که بهت اجازه میده تا با استفاده از ماژولهای هسته، یک وب سرور بسازی و از همین وب سرور در پروژههای خودت استفاده کنی. این وب سرور بهت اجازه میده که بتونی از طریق مرورگر، درخواستها رو به سمت دامنه وبسایت خودت هدایت کنی و حتی از طریق همین فضا توانایی پاسخ به درخواستها از سمت وبسایت رو داشته باشید. خلاصه بخش کلیدی برنامه آموزش نود جی اس گاتاکد یادگیری همین قابلیت جذاب و کاربردی هست.
کار با Express.js رو یاد میگیری
در آخرین مرحله از نقشه راه آموزش Node.js به سمت یادگیری فریم ورک Express.js حرکت میکنیم. در واقع پلتفرم Node.js آنقدر دست باز هست که برای سادگی و بهینه شدن کار در این محیط به یه سری ابزارهای دم دستی نیاز داشته باشی. Express.js فریم ورک دست باز در محیط Node.js هست و برای ساخت پویا و مدیریت جامع وبسایت طراحی شده. در دوره آموزش نود جی اس روش کار با این فریم ورک رو یاد میگیری و قراره تا به خوبی از همین ابزار برای مدیریت سمت سرور وبسایت ها استفاده کنی.
آموزش Node.js برای چه کسانی سودمنده؟
آموزش Node.js برای تمام کسانی که با زبان برنامه نویسی جاوا اسکریپت کار میکنند، سودمند و کاربردی هست. اگه متخصص کد نویسی با جاوا اسکریپت هستی، قطعاً برای کار با این زبان سمت مرورگر در محیط Front end مشکلی نداری. چون جاوا اسکریپت ذاتاً برای کار در محیط فرانت اند طراحی شده و در همین فضا خیلی قدرتمند و دست باز ظاهر میشه. با این حال حیفه که از قدرت جاوا اسکریپت جای دیگه استفاده نکنید. Node.js برای همین هدف طراحی شده.
اگه برنامه نویس جاوا اسکریپت هستی و علاقه داری تا از این زبان کاملاً کاربردی در جایی غیر از محیط مرورگر استفاده کنی، باید برنامه نویسی Node.js رو بلد باشید. به هر حال Node.js بستر اجرای جاوا اسکریپت رو سمت سرور فراهم میکنه. به این ترتیب آموزش نود جی اس برای تمام کسانی که در کد نویسی بک اند کار میکنند و یا علاقه دارند تا از یه زبان مشترک در هر دو سمت بک اند و فرانت اند استفاده کنند، سودمند هست. از طرفی یادگیری Node.js برای افرادی که در زمینه رباتیک و حتی هوش مصنوعی فعال هستند نیز مفیده و میتونه برای خلق بستر کد نویسی کارایی داشته باشه.
قدم بعدی پس از آموزش Node.js چیه؟
آموزش Node.js این فرصت رو برای تو فراهم میکنه که به متخصص Full-Stack Developer تبدیل بشی. کسی که هم میتونه سمت کاربر (Front end) و هم سمت سرور (Back end) کد نویسی کنه. به هر حال اگه جاوا اسکریپت بلد باشی، برای کد نویسی سمت کاربر (Front end) هیچ مشکلی نداری و میتونی با کسب مهارتهای پایه HTML هر چه ماهرتر بشی. البته قیمت دوره HTML چندان زیاد نیست و یه قدم کلیدی برای تبدیل شدن به متخصص فرانت اند کامل هست. ولی برگ برندهی شما تازه با توسعه زبان جاوا اسکریپت به سمت سرور پیدا هست. زمانیکه میتونی پس از یادگیری Node.js به متخصص حرفهای کد نویسی Back end هم تبدیل بشی.
Node.js نقطه عطف برای تبدیل شدن به متخصص Full-Stack هست. بهتره در قدم بعدی مهارتهای کار سمت Back end رو یاد بگیری. توصیه میکنیم که برای خرید دوره CSS اقدام کنی. چرا که با یادگیری CSS خیلی ساده با مفاهیم Back end آشنا میشی و بهتر میتونی از پلتفرم Node.js برای کد نویسی جاوا اسکریپت و خلق محیط پویا سمت سرور استفاده کنی.
ویژگیهای برتر و مزایای استفاده از Node.js
دلایل زیادی وجود داره تا به عنوان برنامهنویس حوزه وب برای یادگیری و آموزش Node.js اقدام کنی. کافیه به زبان برنامه نویسی جاوا اسکریپت مسلط باشی تا با دنیای خیلی بزرگتر از کد نویسی سمت سرور وارد بشی. یادت باشه که یادگیری Node.js برای کسانی که با زبان جاوا اسکریپت آشنا هستند، خیلی ساده و سریع انجام میشه. از طرفی مهمه بدونی که Node.js تنها پلتفرم قدرتمند اجرای جاوا اسکریپت خارج از محیط کاربر هست و بهت اجازه میده که با API های غیر همزمان کار کنی. شما بهتره که متخصص Node.js بشوید، چون:
محیط اجرایی Node.js کاملاً یکپارچه طراحی شده
با آموزش نود جی اس این فرصت رو داری که از جاوا اسکریپت هم در سمت سرور و هم در سمت کلاینت (کاربر) استفاده کنی. در کل محیط اجرایی Node.js خیلی یکپارچه هست و تعامل میان فضاهای مختلف بک اند و فرانت اند رو خیلی سادهتر میکنه. دیگه قرار نیست تا این دو محیط رو جداگانه و کاملاً مستقل از هم کار کنی. محیط اجرایی یکپارچه مهمترین ویژگی کاربردی Node.js برای خلق پروژههای سنگین و کاربردی با جاوا اسکریپت هست و عملاً مسیر اجرای پروژههای بزرگ رو کوتاه و سریع میکنه.
سرعت و کارایی Node.js بسیار بالاست
پلتفرم Node.js مبتنی بر موتور ۷۸ جاوا اسکریپت گوگل ساخته شده که از کارایی و سرعت بسیار بالایی برخوردار هست. از طرفی اساس کار با Node.js رویداد محور است و قراره تا در این فضا از محیط کد نویسی غیر بلوک کننده استفاده کنی. برای همین گزینه ایدهآل توسعه وبسایت ها با ترافیک بالا هست و در حجم زیاد اطلاعات هر وبسایت کارایی خوب و سریع داره.
امکان توسعه سریع متکی بر اکوسیستم گسترده NPM
جالبه بدونید که Node.js کتابخانه خیلی بزرگ و قدرتمند از بستههای قابل استفاده مجدد داره. شما میتونی از همین بستهها متکی بر اکوسیستم گسترده NPM برای توسعه سریع و کارآمد سمت سرور (Back end) وبسایت ها استفاده کنی.
برای طراحی وبسایت های مقیاس پذیر مناسب است
کار با پروژههای مقیاس پذیر که قراره تا تعداد زیادی اتصال رو همزمان مدیریت کنه، ساده نیست. ولی خوشبختانه شما پلتفرم Node.js رو در اختیار داری که بهت کمک میکنه تا در خلق وبسایت های مقیاس پذیر هر چه بهتر و قدرتمندتر حاضر باشی و کد نویسی کنید.
از جامعه فعال برخوردار است
شهرت Node.js بزرگترین مزیت آن است. جامعه بزرگ و فعال از برنامهنویسهای سراسر دنیا با این پلتفرم کار میکنند و هر روز برای افزایش قابلیتهای این پلتفرم کار میشود. تعداد زیادی متخصص Node.js سراسر دنیا فرصتهای شغلی زیادی رو برای این پلتفرم ایجاد کردند. به هر حال برگ برنده نرمافزارها محبوبیت آنها هست و از این نظر کمتر پلتفرمی رو سراغ داریم که به اندازه Node.js محبوب و کاربردی باشه.
بازار کار برنامه نویسی Node.js چطور هست؟
بعیده متخصص کد نویسی با جاوا اسکریپت باشی و برای کار در توسعه فرانت اند (Front end) با مشکل روبهرو بشی. همین جاوا اسکریپت تضمین بازار کار عالی متخصص Node.js هست. البته یادت باشه که پس از آموزش نود جی اس حتی یه قدم از تمام برنامهنویس های جاوا اسکریپت جلوتر هستی. چون حالا به یه Full-Stack تبدیل شدی.
برگ برنده بازار کار متخصص Node.js همین قابلیت کار در هر دو فضای فرانت اند و بک اند هست. کافیه تا دوره آموزش Node.js رو تمام کنی تا کاملاً حرفهای به یه متخصص تماموکمال Full-Stack تبدیل بشی. یعنی کسی که هم میتونه برای سمت سرور کد نویسی کنه و هم از امکان کار سمت کلاینت برخوردار هست. چطور ممکنه یک چنین متخصصی بیکار بمونه. بازار کار برنامه نویسی Node.js عالیه و این فرصت رو داری که از بک اند تا فرانت اند در هر نوع پروژه توسعه وبسایت و یا طراحی اپلیکیشن کار کنی.
چرا دوره Node.js گروه گاتاکد؟
گاتاکد برای آموزش Node.js برنامهای جامع و کاملاً جدی در پیش گرفته. اهمیت Node.js آنقدر زیاد هست که نمیتونی خیلی معمولی بهش نگاه کنی و بخوای مراحل آموزش این پلتفرم رو حرفهای دنبال نکنی! یادت باشه که یادگیری Node.js میتونه نقطه عطف شما در دنیای توسعه وب باشه. Node.js مرز تبدیل شدن به متخصص Full Stack هست و مهمه که مراحل آموزش اون رو کاملاً جدی و حرفهای دنبال کنید. البته برای شما که به مفاهیم کد نویسی جاوا اسکریپت مسلط هستید، یادگیری Node.js خیلی سخت نیست، اما لازمه تا این پلتفرم رو متکی بر نقشه راه یاد بگیرید. نکته کلیدی که در تدوین دوره آموزشی گاتاکد پیش بینی کردم. من در آموزش نود جی اس گاتاکد با یه نقشه راه کامل کنارت هستم تا قدم به قدم وارد فضای پویا و دست باز Node.js بشی و تمام مهارتهای کار با اون رو مرحله به مرحله اما با رویکرد پروژه محور کار کنی.
قیمت دوره Node.js در گاتاکد
به عنوان یه کارآموز جوان و یا متخصص فرانت اند که علاقه داره تا در بک اند هم قدرتمند حاضر باشه، قطعاً به دوره آموزش Node.js نیاز داری، ولی ممکنه در تأمین بودجه خرید دوره Node.js به مشکل بخورید. به هر شکل در گاتاکد متوجه بودجه محدود شما هستیم و قیمت این دوره کاملاً اقتصادی و به صرفه تنظیم شده تا هر کسی از دانشجوی جوان اما پویا تا کارشناس خبره جاوا اسکریپت به راحتی از خدمات آموزش این دوره استفاده کنند. به هر حال خود من هم یه زمانی مثل شما برای آموزش Node.js دست به کار شدم و خوب میدونم که تأمین هزینه دوره تا چه اندازه چالش برانگیز هست. اما گاتاکد جامعترین دوره آموزش نود جی اس رو با بهترین قیمت عرضه میکنه و در این مسیر قدم به قدم همراهت هست تا در پایان دوره به متخصص Node.js کاملاً حرفهای تبدیل شده باشی.
درک شیوه اجرایی Asynchronous و معماری Node.Js
نصب Node.Js
اجرای اولین برنامه NodeJs
آشنایی و ساخت یک Module
بارگذاری و دسترسی به Module
آشنایی با CommonJs و EcmaScript در Modules
شناخت Module Wrapper
دسته بندی Modules با Index.js
آشنایی اولیه با Built-In Modules
آشنایی با Event Emitter
مفهوم Class و Inheritance در ES6
استفاده از Emitter در Modules
آشنایی با npm و ساخت Package.json
آشنایی با فایل های مربوط به npm
آشنایی با قابلیت های مهم npm
استفاده از Nodemon
آشنایی با مفهوم وب سرور و Http
ایجاد وب سرور
ایجاد وب سرور - Routing در Http Module
ایجاد وب سرور - ارسال پارامتر به URL
ایجاد وب سرور - بررسی Post Request
آشنایی با فریمورک Express
Route Params در Express.js
آشنایی با Middleware
Post Requests در Express.js
Put Requests در Express.js
Delete Requests در Express.js
ساختار MVC در Express.js
بررسی ExpressRouter
ارسال فایل به کاربر در Express
استفاده از Template Engines
استفاده از Layout در Views
بررسی Asynchronous
آشنایی با مفهوم Callback و Callback Hell
آشنایی با Promise
جایگزین کردن CallBacks با Promises
آشنایی با Settled و Parallel Promises
آشنایی با Async و Await
نصب MongoDB
آشنایی با Mongoose و اتصال به MongoDB
آشنایی با Schema و ساخت Model
ذخیره کردن داده ها بصورت Document
ایجاد کوئری در دیتابیس و دریافت Documents
استفاده از اپراتور های مقایسه ای در کوئری نویسی - Comparison Operators
اپرتور های منطقی And و Or
استفاده از Regular Expression
آشنایی با Skip و Count و پیاده سازی Pagination
ویرایش اطلاعات یک Document به روش Query First
ویرایش اطلاعات یک Document به روش Update First
حذف Document
اعتبار سنجی داده - Validation
اعتبار سنج های داخلی - Built-In Validators
اعتبار سنجی سفارشی - Custom Validators
خطایابی در اعتبار سنجی - Validation Errors
تغییر داده ها در اعتبار سنجی - Change Data Validation
اتصال Api به دیتابیس با Mongoose
آشنایی با انواع روش های ذخیره داده
ثبت اسناد به روش ارجاعی - Refrenced Documents
استفاده از Populate
ثبت اسناد به سبک تعبیه شده یا Embedded
ذخیره اسناد به صورت Sub-Document
آشنایی با مفهوم Transaction و ایجاد Two Phase Commit
ایجاد بستر اولیه
اضافه کردن Router و استفاده از EJS
اتصال به دیتابیس و افزودن محصول
کامل کردن Navbar
نمایش محصولات در Index
نمایش اطلاعات محصول
ویرایش محصول
ویرایش محصول - قسمت 2
حذف محصولات
افزودن User Model
پیاده سازی سبد خرید
حذف محصول از سبد خرید
افزودن Order Model و ثبت سفارش محصول
ساخت صفحه نمایش سفارشات کاربر
ایجاد صفحه Login و استفاده از Cookie
دریافت و تجزیه مقادیر Cookie از Request
آشنایی و پیاده سازی اولین Session
ذخیره session در دیتابیس MongoDB
Destroy و پاک کردن Session
برطرف کردن باگ های پروژه و ذخیره داده های User در درخواست با استفاده از Session
افزودن ساختار اولیه برای Register و رمزنگاری Password
Compare کردن پسورد در Login و حفاظت مسیر ها یا Routes Protection
آشنایی با حملات CSRF و حفاظت وبسایت در برابر CSRF Attacks
استفاده از Middleware برای تعریف CSRF Token در درخواست های جاری
استفاده از Flash برای نمایش پیغام بعد از ارسال ناموفق مقادیر ورودی
افزودن Flash به بقیه Action ها
ارسال ایمیل به کاربر با استفاده از Nodemailer
ایجاد View بازیابی رمز عبور
ساخت Token بازیابی رمز عبور و ارسال به ایمیل کاربر
ایجاد From بروزرسانی رمز عبور و دریافت Token از ایمیل کاربر
بروزرسانی رمزعبور در پایگاه داده
آشنایی و پیاده سازی Authorization
افزودن Protection به ویرایش و حذف محصولات
استفاده از Express Validator برای اعتبار سنجی داده های ورودی کاربر
سفارشی کردن Validator
اعتبار سنجی Password
نگه داری مقادیر ورودی کاربر پس از شکست اعتبار سنجی
تغییر رابط کاربری در اعتبار سنجی
آشنایی با Data Sanitizers و اعتبار سنجی فرم Login
اعتبار سنجی افزودن محصول
اعتبار سنجی ویرایش محصول
اعتبار سنجی مقادیر ورودی محصول در رابط کاربری
استفاده از Try , Catch
ساخت صفحه نمایش خطا 500
استفاده از Middleware برای مدیریت خطا
اصلاح ساختار Middleware
استفاده از Multer و دریافت فایل از کاربر با File Picker
تعیین محل ذخیره و نام فایل بر روی سرور
فیلتر کردن و ذخیره فایل ها بر اساس نوع
ذخیره کردن فایل ها با استفاده از دیتابیس
نمایش و دریافت فایل ها بصورت Static
دانلود فایل ها با احراز هویت
قراردادن اطلاعات فایل در Header
Stream کردن فایل ها و بالا بردن امنیت دانلود فایل
ساخت فایل PDF سمت سرور با استفاده از PDFKit
درج کردن داده های پایگاه داده در PDF
حذف فایل ها با FileSystem Module
آشنایی و پیاده سازی اولیه Pagination
ارتقا Pagination سمت Controller
ارتقا Pagination سمت View
استفاده مجدد از Pagination
آغاز کدنویسی سمت Client
ایجاد یک Async Request با استفاده از Fetch api
ایجاد صفحه پرداخت محصول
ارسال درخواست به درگاه پرداخت زرین پال
احراز فرایند پرداخت و دریافت شناسه تراکنش
نمایش شناسه تراکنش سمت کاربر
استفاده از متغیر های محیطی با dotenv
آشنایی با مفهوم Restful API
پیاده سازی ساختار اولیه
آشنایی و رفع ارور امنیتی CORS
ارسال درخواست های Post از سمت Client
بررسی Front-end پروژه مبتنی بر کتابخانه React
ایجاد ارتباط بین Front-end و Back-end
افزودن پست سمت Client
اعتبار سنجی برای افزودن پست
ایجاد ارتباط با Database توسط Mongoose و ذخیره پست در پایگاه داده
ایجاد دسترسی به فایل های Static و Error Handling
نمایش پست ها سمت کلاینت
قابلیت اپلود فایل با Multer با استفاده از ChatGPT و Tabnine
ایجاد قابلیت ویرایش پست ها
ایجاد قابلیت حذف پست ها
ساخت User Model و ایجاد قابلیت ثبت نام یا Sign Up
آشنایی با سیستم احراز هویت JWT و پیاده سازی Login سمت سرور
ایجاد Middleware برای احراز توکن های JWT
استفاده از Middleware JWT و دیباگ قابلیت حذف عکس حین ویرایش پست ها
ایجاد Relation بین مدل ها
افزودن سطح دسترسی برای ویرایش و حذف پست ها
حذف Relation پست ها و کاربران
آشنایی با پروتکل WebSocket و تفاوت آن با HTTP
نصب و راه اندازی Socket.io سمت سرور و کلاینت
ایجاد ارتباط Real-Time هنگام افزودن پست
بروزرسانی پست با Socket.io
برطرف کردن باگ نمایش ندادن نام نویسنده
حذف پست بصورت بلادرنگ با socket.io
بررسی ظاهر پروژه ChatYad
ایجاد و تنظیم Socket.io سمت سرور
آشنایی و استفاده broadcasting در سیستم چت
نمایش متن پیغام های ارسال شده
بهبود استایل دهی و تغییر فرمت پیغام ها
دریافت نام کاربر و اتاق و ارسال سمت سرور
آشنایی با نحوه جداسازی Room ها در Socket.io
جدا کردن پیغام های هر Room و اعلان ترک کاربر
نمایش مجزای نام اعضای هر Room
آشنایی با GraphQL
نوشتن اولین query در GraphiQL
استفاده از graphQL سمت سرور
ایجاد یک Playground مانند GraphiQL برای ارسال Query
ایجاد و طراحی Schema یک فروشگاه اینترنتی با GraphQL
ماژولار کردن Model و Schema
آشنایی با Resolvers
ماژولار کردن Resolvers
پارامتر دهی به Query
نوشتن Query برای دریافت یک محصول
آشنایی و استفاده از Mutations
افزودن Review برای یک محصول
آشنایی با تاریخچه کلی معماری نرم افزارهای سرویس گرا (Monolithic-SOA-Microservice)
آشنایی با کاربرد API Gateway در میکروسرویس ها
آشنایی با انواع روش های تعامل در میکروسرویس ها
بررسی پروژه اولیه
آشنایی با کاربرد Service Registery
ایجاد Service Registery
پبکربندی IP و پیاده سازی عملیات unregister
مرور Semantic Versioning و آشنایی با مفهوم Load Balancing
پیاده سازی Get در Service Registery
حذف سرویس های منقضی شده در Service Registery
تست و دیباگ Service Registry با استفاده از Postman
پروژه اولیه Speaker Service و تمرین استفاده از Service Registry
پیاده سازی عملیات Register برای Speaker Service
پیاده سازی عملیات unregister برای Speaker Service
افزودن منطق Speaker Service
استفاده از Speaker Service از پروژه اصلی
دیباگ و بهینه سازی کدها در پروژه اصلی
ساخت یک Enpoint برای دسترسی به عکس ها
بررسی سناریو از کار افتادن یک Microservice
آشنایی با مکانیزم Circuit Breaker
ایجاد Circuit Breaker
استفاده از کلاس Circuit Breaker
بررسی نحوه کارکرد Circuit Breaker و تمرین این فصل
نصب و راه اندازی MySQL
ساخت اولین جدول و نوشتن Query
اتصال پروژه با MySql
افزودن پست از طریق api
پیاده سازی توابع FindAll و FindByID
دیپلوی پروژه Mini Blog (تنظیم دیتابیس - پیکربندی فایل سیستم - اتصال کلاینت به بک اند)