شروع کار با Node JS

Node.js  پلتفرمی ( ویکی پدیا ) است بر پایه موتور جاوااسکریپت کروم که به منظور طراحی و تولید برنامه های سریع و قابل گسترش ایجاد شده است. در گذشته   جاوااسکریپت بیشتر در صفحات وب و در قسمت کلاینت برنامه های وبی مورد استفاده قرار میگرفت. با ظهور nodejs امکان تولید نرم افزار سمت سرور با استفاده از جاوااسکریپت به راحتی امکان پذیر شده است.

چرا باید از Node JS استفاده کرد؟

زبان‌های برنامه نویسی PHP و Ruby و Java واقعا عالی هستند ولی با تعداد کانکشن بالا مشکل دارند، مثلا اگر یک سرور با ۱۰ گیگ رم داشته باشیم حداکثر در این سرور می‌توان ۴ هزار کانکشن ایجاد کرد و برای افزایش امکان پذیرش کاربران باید سرورهای بیشتری اجاره کرد و این یعنی هزینه‌های سرسام آورNodeJS بدلیل ماهیت خاصی که دارد پاسخگوی تعداد زیادی در خواست است به نحوی که در سرور فوق الذکر می‌تواند تعداد بسیار زیادی Connection ایجاد کرده و به همه آن‌ها پاسخگو باشد.

مزایای Node JS

  • پاسخگوی تعداد زیادی کاربر و بسیار سریع
  • نیاز نداشتن به درگیر شدن در مباحثی پیچیده مانندthread-safety و Multithreading
  • جامعه کاربری بزرگ و Package Manger بزرگ
  • متن باز بودن
  • در هر سیستم عاملی از جمله لینوکس، ویندوز، مک قابل پیاده سازی است.

Node Js و پکیج هایش !

Node.jsرا دنیای package‌های بی‌شمار آن قدرتمند کرده است.

تا کنون package‌های زیادی برای پلتفرم Nodejs نوشته شده است.

سیستم مدیریت پکیج‌های Nodejs با عنوان NPM مخفف (Node Packages Manager) وظیفه‌ی مدیریت Packageهای Nodejs را بر عهده دارد.

کجا از Node JS  استفاده کنیم؟

اگر سایت یا اپلیکیشنی مد نظر دارید که تبادل اطلاعات سنگین نیاز دارد و می‌خواهیم چند ارتباط همزمان داشته باشیم Nodejs انتخاب خوبی نسبت به زبان‌هایی نظیر Php خواهد بود.

به‌طور کلی برای موارد زیر نود جی اس انتخاب خوبی هست :

  • نرم‌‌افزارهای محدوده‌ی I/O
  • نرم‌‌افزارهای جریان داده‌ای (Data Streaing)
  • داده‌‌های نرم‌افزارهای در لحظه (Real-Time)
  • برنامه‌های مبتنی بر Json API
  • برنامه‌‌های تک صفحه‌ای

محبوب دل بزرگان !

شرکت‌های غول‌پیکر نظیر مایکروسافت، یاهو، ebay  ،Paypal ،  نت فلیکس، و … از نود جی اس استفاده می‌کنند.

این اعتماد خود نشان از قدرت Nodejs است که به راحتی نمی‌توان از آن گذشت.

مثلا اگر سایتی داریم که صرفا عملیات ساده CRUD دارد حتی یک وردپرس ساده انتخاب بهتری هست اما اگر یک سایت با عملیات I/O بالا یا به صورت Realtime نیاز داریم آنجا هست که نود جی اس گزینه خوبی هست.

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

بازار کار Node JS

کافیست به سایتjobinja   که در حوزه اشتغال فعال هست نگاهی بیاندازیم، آگهی هایی مشاهده خواهیم کرد که برای برنامه نویس نود جی اس، دستمزدهای ماهیانه بین ۵ میلیون تا ۸ میلیون ثبت کرده اند

یادگیری Nodejs ارزشش را دارد پس حرفه ای شوید و تلاش کنید تا سوپراستار این حوزه باشید.

پیش نیاز های دوره آموزش NodeJS و RESTfull API

آشنایی جزئی با JavaScript

پروژه دوره 

در انتهای دوره آموزش NodeJS و RESTfull API پروژه ای کاربردی با Angular  و Node JS  برای درک بیشتر مفاهیم زده خواهد شد

سرفصل های آموزش NodeJS و RESTfull API

بخش اول: مقدمه

  • Node Js چیست؟
  • معماری Node JS
  • Node Js چگونه کار می کند؟
  • نصب Node JS
  • اولین پروژه Node JS

بخش دوم: سیستم Node Module

  • مقدمه
  • Global Object ها
  • ماژول ها
  • ساخت ماژول
  • اجرای ماژول
  • فانکشن Module wrapper
  • Path Module
  • Os Module
  • ماژول File System
  • Event Module  ها
  • Event Arguments
  • مبحث Event Emitter
  • HTTP Module  ها

بخش سوم: NPM

  • مقدمه
  • فایل Package.json
  • نصب Node Package
  • وابستگی های پکیج ها
  • NPM Package  و Source control
  • Sematic Versioning
  • لیست کردن پکیج های نصب شده
  • مشاهده اطلاعات رجیستری برای یک بسته
  • نصب ورژن خاصی از یک پکیج
  • به روزرسانی پکیج
  • DevDependencies
  • حذف پکیج ها
  • کار با Global Package  ها
  • انتشار یک بسته
  • به روز رسانی پکیج منتشر شده

بخش چهارم: ساخت RESTful API  به وسیله Express

  • مقدمه
  • سرویس RESTful
  • مقدمه Express
  • ساخت اولین وب سرور
  • Nodemon
  • Environment Variables
  • پارامتر های Route
  • درخواست های GET
  • درخواست های POST
  • استفاده از Postman
  • Input Validation
  • درخواست های PUT
  • درخواست های DELETE
  • پروژه – ساخت API

بخش پنجم: مباحث پیشرفته Express

  • مقدمه
  • Middleware   ها
  • ساخت Middleware
  • Middleware  های داخلی
  • Third-party Middleware
  • Environments
  • Configuration
  • عیب یابی
  • Templating Engine
  • ادغام DataBase
  • احرازهویت
  • قالب نرم افزار های Express
  • پروژه – بازسازی برنامه

بخش ششم: Asynchronous JavaScript

  • Synchronous and Asynchronous
  • الگو برخورد با کد های Asynchronous
  • Callbacks
  • Callback hell
  • نام گزاری توابع برای بهتر شدن برنامه
  • Promise
  • جایگزاری Callback  به جای Promise
  • Promise  های پرمصرف
  • ایجاد Promise  های تنظیم شده
  • Promise  های موازی
  • Async and Await
  • تمرین

بخش هفتم: عملیات CRUD با استفاده از MongoDB

  • مقدمه MongoDB
  • نصب MongoDB بر روی Mac
  • نصب MongoDB  برروی Windows
  • اتصال به MongoDB
  • Schema
  • Models
  • ذخیره اسناد
  • Querying Documents
  • مقایسه Query Operators
  • Query Operator  های منظقی
  • عبارات با قائده
  • شمارش
  • صفحه بندی
  • تمرین ۱
  • تمرین ۲
  • تمرین ۳

بخش هشتم: Mogoose  – اعتبار سنجی داده ها

  • اعتبار سنجی
  • اعتبار سنج های داخلی
  • Custom Validation
  • Validation Async
  • Validations Error
  • Schema Type Options
  • پروژه – اضافه کردن پایداری به API  ها
  • پروژه – ساخت API  مشتریان
  • بازسازی پروژه

بخش نهم: Mongoose – مدل سازی و رابطه بین داده های متصل

  • مدل سازی رابطه ها
  • Refrencing Documents
  • Population
  • Embedding Documents
  • استفاده از آرایه Sub-Document
  • پروژه – ساخت API
  • پروژه – ساخت API
  • معاملات
  • Object ID
  • اعتبارسنجی Object ID ها
  • پیاده سازی بهتر

بخش دهم: Authentication and Authorization

  • مقدمه
  • ساخت مدل کاربران
  • ثبت نام کاربران
  • استفاده از Lodash
  • هش کردن رمز عبور
  • احرازهویت کاربران
  • تست کردن احرازهویت
  • JWT (JSON Web Token)
  • ساخت توکن احرازهویت
  • ذخیره اطلاعات در Environment Variables
  • ست کردن Header
  • مفاهیم Encapsulation
  • Authorization Middleware
  • محافظت از Route ها
  • اطلاعات کاربر جاری
  • خروج کاربران
  • سمت بر حسب Authorization
  • تست احرازهویت

بخش یازدهم: پروژه کاربردی

  • انجام یک پروژه کاربردی به وسیله Angular و Node JS