برنامه نویسی و طراحی سایت

آموزش Node JS رایگان مقدماتی – به بیان ساده و پروژه محور

آموزش Node JS رایگان مقدماتی – به بیان ساده و پروژه محور

«نود جی اس» (Node.js) نوعی فناوری متحول کننده به حساب می‌آید که خلأ برنامه نویسی سمت سرور با جاوا اسکریپت را پُر کرده است. در حالی که وبِ مُدِرن شاهد معرفی بسیاری از فریم‌ورک‌های جاوا اسکریپت محبوب مانند «آنگولار جی اس» (Angular JS) و «بوت استرپ» (bootstrap) بود، اما باز هم این موارد در توسعه سمت سرور کافی نبودند. پیش از توسعه Node.js، در اکوسیستم توسعه وب برای محیط اجرایی که به طور خاص به منظور توسعه برنامه‌های کاربردی مبتنی بر سرور طراحی شده باشد، خلاء وجود داشت. در این آموزش Node JS رایگان و مقدماتی، نگاهی به این نوع محیط زمان اجرا یعنی همان نود جی اس خواهیم داشت و پتانسیل آن را برای توسعه اپلیکیشن‌های قدرتمند مبتنی بر سرور بررسی می‌کنیم. قبل از اینکه آموزش Node JS را ارائه دهیم، ابتدا به طور مختصر و مفید اطلاعاتی را راجع به Node JS، ویژگی‌ها، کاربردها و سایر موارد پیرامون آن در ادامه ارائه داده‌ایم.

فهرست مطالب این نوشته
نود جی اس چیست؟

دلایل استفاده از نود جی اس چیست؟

ویژگی‌های مهم نود جی اس کدامند؟

چه شرکت‌ هایی از نود جی اس استفاده می کنند؟

چه زمانی نود جی اس مفید است؟

چه زمانی نباید از Node.js کرد؟

آموزش Node JS رایگان

دانلود و نصب نود جی اس

نصب NPM در ویندوز برای آموزش Node JS

آموزش ساخت پروژه در نود جی اس Node JS

آموزش ماژول ها در Node JS

آموزش استفاده از ماژول ها در Node.js

آموزش ایجاد ماژول سفارشی در نود جی اس

گسترش ماژول در نود جی اس

مثال گسترش ماژول در نود جی اس

بسته انتشار NPM

مدیریت بسته‌ های NPM

فایل package.json چیست؟

آموزش ساخت وب سرور HTTP در نود جی اس

رسیدگی به درخواست های GET در Node.js

آموزش Express JS

آموزش نصب Express

Routes چیست؟

ساخت وب سرور با اکسپرس

آموزش Node JS و MongoDB

پایگاه های داده NoSQL و نود جی اس

نحوه استفاده نود جی اس از MongoDB چگونه است؟

آموزش وعده ها در Node JS

پاسخ به وعده ها

وعده های تودرتو در نود جی اس

ساخت وعده سفارشی در نود جی اس

Bluebird JS چیست؟

ساخت وعده با کتابخانه Bluebird JS

مولد در نود جی اس چیست؟

مثالی از ژنراتور در نود جی اس

پاسخ به تماس در مقابل ژنراتورها

آموزش جریان فایل در Node.js

مثالی از جریان فایل در نود جی اس

نوشتن در فایل

Pipe در نود جی اس

آموزش رویدادها در Node JS

انتشار رویدادها در نود جی اس

JasmineJS چیست؟

Jasmine برای تست برنامه های Node.js

آزمایش برنامه نود جی اس با Jasmine

سخن پایانی

faradars mobile

نود جی اس چیست؟

Node JS نوعی محیط زمان اجرا است که به برنامه‌نویسان کمک می‌کند تا برنامه‌های وب سمت سرور بسازند. نود جی اس از زبان برنامه نویسی جاوا اسکریپت استفاده می‌کند و می‌تواند روی بسیاری از سیستم‌های کامپیوتری مختلف کار کند.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

نود جی اس برای پردازش سریع داده‌ها و رسیدگی به بسیاری از درخواست‌ها به طور هم‌زمان طراحی شده است که آن را برای برنامه‌های وب بلادرنگ به انتخاب بسیار مناسبی تبدیل می‌کند. همچنین Node JS امکان برقراری ارتباط دو طرفه بین سرور و کاربر را فراهم خواهد کرد که این کار قبل از پیدایش Node.js دشوار بود.

آموزش نود جی اس

دلایل استفاده از نود جی اس چیست؟

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

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

ویژگی‌های مهم نود جی اس کدامند؟

Node.js نوعی ابزار قدرتمند با چندین ویژگی منحصربه‌فرد به حساب می‌آید که آن را در بین برنامه‌نویسان به ابزاری محبوب بدل کرده است. یکی از مهم‌ترین نقاط قوت Node.js، قابلیت رسیدگی به درخواست‌های هم‌زمان به شکلی ساده است.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

این کار از طریق «ورودی/خروجی» (I/O) ناهم‌زمان رویداد‌محور انجام می‌شود که به Node.js اجازه می‌دهد تا عملیات «ورودی/خروجی» را در پس‌زمینه اجرا کند و به پاسخ‌دهی به درخواست‌های دیگر ادامه دهد. در مقابل، سایر انواع زبان‌های برنامه‌ نویسی، قبل از رفتن به خط بعدی منتظر می‌مانند تا کل فایل خوانده شود. مثالی ساده از این عملکرد در کدهای زیر آورده شده است:

var fs = require('fs'); 
          fs.readFile("Sample.txt",function(error,data)
          {
                console.log("Reading Data completed");
     });

در مثال فوق، Node.js عملیات خواندن فایل را در پس‌زمینه آغاز می‌کند، در حالی که سایر پردازش‌ها می‌توانند به طور هم‌زمان انجام شوند. بخش مهمی که باید به آن توجه داشت، مربوط به اعلان تابع تماس function(error, data)

 می‌شود. این تابع ناشناس است و پس از اتمام عملیات خواندن فایل فراخوانی می‌شود.

آموزش نود جی اس مقدماتی

این رویکرد ناهم‌زمان در Node.js امکان رسیدگی کارآمدتر و هم‌زمان چندین درخواست را فراهم می‌کند و آن را به انتخابی قدرتمند برای ساخت برنامه‌های کاربردی مقیاس‌پذیر و با کارایی بالا تبدیل خواهد کرد. Node.js همچنین از موتور «V8 JavaScript Runtime» استفاده می‌کند که باعث می‌شود سریع‌تر و کارآمدتر شود. این به نوبه خود امکان پردازش سریع‌تر درخواست‌ها را فراهم خواهد کرد. علاوه بر این، Node.js از جاوا اسکریپت استفاده می‌کند، زبانی که اکثر توسعه‌دهندگان با آن آشنا هستند و این مسئله استفاده از آن را آسان‌تر کرده است.

آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی
فیلم آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی در تم آف

کلیک کنید

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

چه شرکت‌ هایی از نود جی اس استفاده می کنند؟

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

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

مهم‌ترین این شرکت‌ها در ادامه فهرست شده‌اند.

  • «پی پال» (PayPal): این شرکت انتقال به Node.js را در چندین وب‌سایت خود آغاز کرده است.
  • «لینکدین» (Linkdien): نود جی اس به وسیله شرکت LinkedIn برای تأمین انرژی سرورهای موبایل استفاده می‌شود و از محصولات «iPhone» ،«Android» و «Mobile Web» پشتیبانی می‌کند.
  • «موزیلا» (Mozila): نود جی اس به وسیله شرکت موزیلا برای پشتیبانی از APIهای مرورگر استفاده می‌شود که بر روی بیش از نیم میلیارد دستگاه نصب شده‌اند.
  • «eBay»: این شرکت سرویس «HTTP API» خود را با استفاده از 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
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

یکی از این سناریوها زمانی است که برنامه نیاز به زمان پردازش طولانی دارد.

آموزش node js برای مبتدیان

از آنجایی که Node.js به صورت «تک‌رشته‌ای» (Single Thread) طراحی شده است، اگر برنامه‌ای نیاز به انجام محاسبات طولانی در پس‌زمینه داشته باشد، امکان دارد نتواند درخواست‌های دیگر را در این مدت پردازش کند. همان‌طور که قبلاً ذکر شد، Node.js برای شرایطی که پردازش به زمان اختصاصی کمتری نیاز دارد، بهترین گزینه است؛ بنابراین، احتمالاً برای برنامه‌هایی که شامل پردازش پس‌زمینه گسترده یا محاسبات طولانی مدت هستند، استفاده از تود جی اس انتخاب مطلوبی نخواهد بود.

آموزش Node JS رایگان

در این بخش به بحث اصلی یعنی آموزش رایگان Node JS مقدماتی پرداخته شده است. آموزش Node JS در این نوشتار به ۲ بخش اصلی مفاهیم مقدماتی و مفاهیم پیشرفته تقسیم شده است.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js

کلیک کنید

مفاهیم مقدماتی نود جی اس شامل موارد زیر هستند.

  • دانلود و نصب نود جی اس
  • آموزش NPM
  • ساخت وب سرور HTTP

مفاهیم پیشرفته آموزش Node JS شامل موارد زیر است:

  • آموزش فریمورک «اکسپرس» (Express)
  • آموزش «مونگو دی بی» (Mongo DB)
  • «وعده‌ها» (Promise) در نود جی اس
  • «مولد یا ژنراتورها» (Generators) در Node JS
  • Streams در نود جی اس
  • آزمایش «Jasmine» در نود جی اس

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

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

دانلود و نصب نود جی اس

اولین قدم در آموزش Node JS نصب و راه‌اندازی آن است. نصب نود جی اس تقریباً‌ مانند نصب سایر برنامه‌های عادی است و برای این کار کافی است که فایل نصب کننده آن را از وب‌سایت نود جی اس [+] دانلود و اقدام به نصب آن کرد. Node.js با سیستم عامل‌های مختلف از جمله ویندوز، لینوکس و مک سازگاری دارد. پس از نصب موفقیت‌آمیز Node.js، می‌توان اولین برنامه Node.js خود را ایجاد کرد. در این آموزش Node JS ما نصب کننده این محیط زمان اجرا را برای ویندوز دانلود و نصب کرده‌ایم.

دانلود و نصب نود جی اس

یکی از ویژگی‌های قدرتمند Node.js توانایی آن در ترکیب عملکردهای خارجی یا توسعه‌یافته از طریق «ماژول‌های» (Module) سفارشی است. این ماژول‌ها طبق نیاز کاربران باید جداگانه نصب شوند. برای مثال، می‌توان ماژول MongoDB را نصب کرد که به کاربر امکان می‌دهد مستقیماً از برنامه Node.js با پایگاه‌ داده MongoDB کار کند.

آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js  و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js و MongoDB در تم آف

کلیک کنید

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

مطلب پیشنهادی:

نصب سرویس Node.js روی وب سرور | راهنمای جامع

شروع مطالعه

 

نصب NPM در ویندوز برای آموزش Node JS

برای نصب «NPM» یا همان «مدیر بسته نود جی اس» (Node Package Manager) در ویندوز، می‌توان از ابزارهای مدیریت بسته مثل Chocolatey (+) استفاده کرد. Chocolatey نوعی چارچوب غیرمتمرکز برای نصب سریع برنامه‌ها و ابزارها فراهم می‌کند. در ادامه مراحل نصب NPM آمده است.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

در مرحله اول باید دستور زیر را در خط فرمان ویندوز  وارد کرد.

@powershell -NoProfile -ExecutionPolicy Bypass -Command “iex ((new-object wet.webclient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin

نکته: برای باز کردن پاورشل باید عبارت «PowerShell» را در منوی استارت ویندوز وارد و گزینه «Run as Administrato» را از منو انتخاب کرد.

آموزس کار با Chocolatey

پس از اتمام نصب، NPM روی دستگاه ویندوزی نصب می‌شود و به کاربر این امکان را می‌دهد تا به راحتی بسته‌های Node.js را برای پروژه‌های خود مدیریت و نصب کند. همچنین به سادگی و با دستور زیر نیز می‌توان آخرین نسخه NPM را نصب کرد:

npm install -g npm

برای اطمینان از نصب بودن نود جی اس و NPM نیز می‌توان دستورات زیر را در خط فرمان ویندوز وارد کرد:

node -v
npm -v

خروجی این دستورات در صورتی که هر دو با موفقیت نصب شده باشند، به صورت زیر است:

آموزش نود جی اس رایگان

حال با موفقیت نود جی اس و NPM روی سیستم نصب شده‌اند.

مطلب پیشنهادی:

پیکربندی محیط توسعه Node.js روی ویندوز 10 — از صفر تا صد

شروع مطالعه

 

آموزش ساخت پروژه در نود جی اس Node JS

در این بخش از آموزش Node JS پس از نصب NPM و همچنین نصب نود جی اس، اولین پروژه فرضی این آموزش راه‌اندازی خواهد شد. در این پروژه سعی شده است با استفاده از نود جی اس، متنی دلخواه در مرورگر نمایش داده شود.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

برای این کار به یک فایل جاوا اسکریپت نیاز است که در این آموزش مقدماتی نود جی اس، نام این فایل MyApp.js

 خواهد بود. فایل نام‌برده حاوی قطعه کد زیر است:

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
    res.end('سلام. به این آموزش نود جی اس از تم آف خوش آمدید');
}).listen(8080);

توضیحات قطعه کد بالا در ادامه آمده است.

  1.  تابع require

     در Node.js برای بارگذاری ماژول‌ها استفاده می‌شود. در این مثال، از ماژول http

     برای ایجاد سرور «HTTP» استفاده شده است.

  2. سپس برنامه سرور با استفاده از تابع createServer

     ایجاد شده که تابع callback

     را به عنوان آرگومان دریافت می‌کند. هر زمان که درخواستی به برنامه سرور ارسال شود، این تابع Callback فراخوانی خواهد شد.

  3. در داخل تابع callback

    ، از شی res

     برای ارسال پاسخ متن فرضی به کلاینت استفاده شده است. تابع writeHead

     برای ارسال داده‌های سرآیند به کلاینت استفاده می‌شود و تابع end

     اتصال را به کلاینت می‌بندد.

  4.  در نهایت، از تابع Listen

     در شی سرور استفاده شده است تا برنامه سرور به درخواست‌های کلاینت در شماره پورت 8080

     گوش دهد.

حال برای اجرای برنامه کافی است که پوشه یا مسیر فایل جاوا اسکریپت ساخته شده را در خط فرمان ویندوز باز کرده و دستور Node MyApp.js

 را در آن اجرا کنیم.

یادگیری نود جی اس

در حال حاضر، کامپیوتر ما به عنوان نوعی سرور عمل می‌کند. این یعنی اگر کسی سعی کند به کامپیوتر در پورت 8080

دسترسی پیدا کند، پیغام متنی «سلام. به این آموزش Node JS از مجله تم آف خوش آمدید» را دریافت خواهد کرد. برای دیدن خروجی کافی است که آدرس http://localhost:8080

 در مرورگر باز شود که خروجی آن به صورت زیر خواهد بود:

آموزش نود جی اس رایگان

آموزش ماژول ها در Node JS

ماژول‌های Node.js راهی برای کپسوله‌سازی کدها در واحدهایی منطقی جداگانه هستند که آن را قابل مدیریت و نگهداری‌تر می‌کنند. ماژول‌های محبوب مورد استفاده در برنامه‌های Node.js در ادامه فهرست شده‌اند.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

  • فریم ورک Express برای ساخت وب اپلیکیشن
  • کتابخانه «Socket.io» برای ارتباطات دوطرفه بلادرنگ
  •  «Jade» برای رندر قالب
  • درایور MongoDB برای پایگاه داده MongoDB
  • ابزار «Restify» برای ساخت APIهای REST
  • «Bluebird» برای مدیریت «وعده» (Promise) با ویژگی‌های نوآورانه
  • سایر موارد
مطلب پیشنهادی:

Node.js و ابزارها و تکنیک‌ها برای ساخت سرورهای قدرتمند و سریع

شروع مطالعه

 

آموزش استفاده از ماژول ها در Node.js

برای استفاده از ماژول‌ها در برنامه Node.js، ابتدا باید آن‌ها را با استفاده از مدیر بسته Node یا NPM نصب کنیم. برای مثال در این آموزش Node JS، ماژول Express با دستور زیر نصب شده است.

Npm install Express

فرایند نصب بدین صورت است:

آموزش ماژول ها در نود جی اس

دستور بالا فایل‌های لازم را که حاوی «ماژول‌های اکسپرس» هستند، دانلود و نصب می‌کند. حال بعد از اینکه ماژول نصب شد، برای استفاده از آن باید از کلمه کلیدی require

 استفاده کرد. این کلمه کلیدی راهی برای گنجاندن عملکرد ماژول در آن برنامه کاربردی است که نود جی اس از آن استفاده می‌کند. مثال زیر برای درک این مفهوم مهم است:

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
});
var server=app.listen(3000,function()
{
});

در قطعه کد بالا از کلمه کلیدی require

برای گنجاندن ماژول‌ها و ایجاد اشیاء برای دسترسی به عملکرد آن‌ها استفاده شده است. همچنین، مثال فوق از ماژول Express برای ساخت برنامه‌های کاربردی وب استفاده و موتور «View» را با استفاده از دستور set

 تنظیم می‌کند و با استفاده از متد Listen

 به پورتی خاص گوش می‌دهد. این مثال به طور خلاصه به مفهوم «موتورهای قالب» (Templating Engine) برای تزریق مقادیر در صفحات وب اشاره می‌کند.

آموزش ایجاد ماژول سفارشی در نود جی اس

برای ایجاد ماژول‌های سفارشی با استفاده از Node.js، باید فرآیندی ساده را دنبال کرد که در این آموزش نود جی اس ارائه شده است. ابتدا باید فایلی جاوا اسکریپتی ساخته شود و کدی که حاوی منطق ماژول است را در آن وارد کرد. همچنین باید از کلمه کلیدی Export

 استفاده کنیم تا این اطمینان به وجود آید که قابلیت‌های تعریف شده در فایل به وسیله فایل‌های دیگر قابل دسترسی است.

آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی
فیلم آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی در تم آف

کلیک کنید

برای مثال در کد زیر تابعی مانند AddNumber

 تعریف شده است که دو پارامتر را گرفته و آن‌ها را با هم جمع می‌کند. این تابع باید به ماژول Export

اضافه شود تا آن را به تابعی عمومی تبدیل کند که به وسیله سایر ماژول‌های برنامه قابل دسترسی باشد. در نهایت، برنامه‌ای ایجاد می‌شود که ماژول سفارشی را فراخوانی کند. نام این فایل، Addition.js

 است.

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};

حال در این مرحله برای تکمیل ساخت ماژول نود جی اس فایلی به نام app.js

 ساخته می‌شود که حاوی کد زیر است.

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));

در کدهای بالا از کلمه کلیدی require

 برای گنجاندن عملکرد در فایل Addition.js

استفاده شده است. از آنجایی که توابع موجود در فایل Addition.js

اکنون قابل دسترسی هستند، می‌توان با تابع AddNumber

 ارتباط برقرار کرد. در تابع، ٢ عدد به‌عنوان پارامتر ارسال خواهند شد و با اجرای برنامه در کنسول، عدد ٣ نمایش داده خواهد شد و این یعنی تابع AddNumber

در فایل Addition.js

با موفقیت فراخوانی شده است.

گسترش ماژول در نود جی اس

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

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

آموزش فریم ورک نود جی اس – آپلود فایل با Node.js
فیلم آموزش فریم ورک نود جی اس – آپلود فایل با Node.js در تم آف

کلیک کنید

هنگامی که ماژول گسترش یافته فراخوانی می‌شود، رشته را از ماژول اصلی فراخوانی کرده و خروجی مدنظر را باز می‌گرداند. در مثال زیر مراحل گسترش ماژول را در این آموزش Node JS بیان شده است.

مثال گسترش ماژول در نود جی اس

مرحله ١: در قدم اول ماژول پایه فرضی به نام Tutorial.js

 ایجاد شده است. این فایل حاوی تابعی بوده که رشته‌ای را به کنسول برمی‌گرداند و قطعه کد آن به صورت زیر است:

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Hi Faradars")
}

مرحله ٢: در این مرحله باید ماژولی گسترش یافته ایجاد شود که فایلی به نام NodeTutorial.js

 است. این فایل از تابع require

برای گنجاندن ماژول Tutorial.js

و ایجاد تابعی استفاده می‌کند که رشته‌ای را به کنسول می‌فرستد. همچنین تابع را از ماژول Tutorial.js

برای خروجی رشته اصلی فراخوانی می‌کند. قطعه کد این فایل به صورت زیر است:

var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
function pTutor()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Or
var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Faradars Node Tutorial")
this.pTutor = function ()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

مرحله ٣: در این مرحله باید فایل برنامه اصلی که فایلی به نام app.js

 است ایجاد شود. این فایل ماژول NodeTutorial

 و تابع داخل آن را فراخوانی خواهد کرد و موجب ایجاد خروجی می‌شود. قطعه کد آن به صورت زیر است:

var localTutor=require('./NodeTutorial.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.pTutor();

Or use this code
var tut = new localTutor.NodeTutorial();  // Create and save object
tut.pTutor();  // Call function on object

در مثال بالا یاد گرفتیم که چگونه ماژول Node.js به نام NodeTutorial

را گسترش دهیم، به طوری که هنگام فراخوانی آن، دو عبارت مد نظر در خروجی کنسول نمایش داده شوند. این امر با فراخوانی تابع NodeTutorial

و همچنین ایجاد و فراخوانی تابع دوم به نام pTutor

 در ماژول به دست می‌آید. خروجی به صورت زیر خواهد بود:

Hi Faradars
Faradars Node Tutorial

بسته انتشار NPM

بسته انتشار NPM فرآیند انتشار ماژول در مخزن «گیت‌هاب» است، به طوری که می‌تواند توسط ماشین‌های دیگر کاربران نصب شود. این فرایند نیاز به طی کردن مراحل زیر دارد:

آموزش ساخت میکروسرویس با نود جی اس Nodejs و ری اکت React
فیلم آموزش ساخت میکروسرویس با نود جی اس Nodejs و ری اکت React در تم آف

کلیک کنید

  1. ساخت مخزن در Github
  2. تنظیم نام نویسنده، ایمیل و URL
  3. ورود به سیستم NPM
  4. مقداردهی اولیه بسته
  5. انتشار فایل‌های منبع در گیت‌هاب و سپس انتشار ماژول در رجیستری NPM

در ادامه نوعی ماژول آزمایشی برای انتشار آماده شده است. قبلاً در گیت‌هاب مخزن مد نظر ساخته شده است. حال مشخصات بسته به صورت زیر خواهد بود:

npm set init.author.name “kami”

npm set init.author.email “ka......@gmail.com”

npm set init.author.url http://test...url.com

ابتدا باید به NPM با دستور زیر وارد شد:

npm login

با این کار، سایت اصلی NPM در مرورگر بازخواهد شد. اگر کاربر از قبل حساب کاربری داشته باشد، برای ورود باید رمز موقت را وارد کند و در غیر این صورت باید در سایت اصلی NPM حساب کاربری جدیدی بسازد. اگر ورود موفقیت‌آمیز باشد، نتیجه به صورت زیر خواهد بود:

کار با NPM

حال باید بسته با ساخت فایلی به نام package.json

 با دستور زیر راه اندازی شود:

npm init

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

آموزش نود جی اس

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

git add.
git commit -m "Initial release"
git tag v0.0.1 
git push origin master --tags

در آخر هم باید بسته در گیت‌هاب منتشر شود که با دستور زیر این کار قابل انجام است.

npm publish
آموزش نود جی اس رایگان

مدیریت بسته‌ های NPM

«Node Package Manager» عملکردهایی را به منظور نصب، فهرست کردن، به‌روزرسانی، جستجو و حذف بسته‌های شخص ثالث برای برنامه‌های Node.js ارائه می‌دهد . این عملکردها با دستورات زیر قابل اجرا هستند.

  • دستور «Install» برای نصب بسته‌ها در سطح سراسری استفاده می‌شود.
  • «Update» برای به‌روزرسانی بسته‌های خاص استفاده خواهد شد.
  • دستور «list» برای مشاهده همه بسته‌های نصب شده در سطح سراسری مورد استفاده قرار می‌گیرد.
  • «Search» برای بررسی اینکه آیا یک بسته خاص به صورت محلی نصب شده است یا خیر استفاده می‌شود.

فایل package.json چیست؟

فایل package.json

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

همراه خواهد شد که حاوی شماره نسخه ماژول مورد استفاده است.

آموزش ساخت وب سرور HTTP در نود جی اس

در این بخش از آموزش Node JS، به آموزش ساخت وب سرور HTTP پرداخته خواهد شد. Node.js می‌تواند برای ایجاد وب سرور استفاده شود که بتواند محتوا را به کاربران ارائه دهد. در واقع نود جی اس دارای ماژول‌هایی مانند http

 و Request

 است که در پردازش درخواست‌های مربوط به سرور کمک می‌کند.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

در ادامه نمونه‌ای از نحوه ایجاد برنامه وب سرور ارائه شده است، که نوعی ماژول سرور ایجاد می‌کند که به پورت 7000

 گوش می‌دهد و هنگامی که درخواستی از طریق مرورگر انجام می‌شود، پاسخ Hi, Welcome To Faradars Mag

 را ارسال می‌کند. قطعه کد زیر برای ساخت وب سرور مورد نظر استفاده شده است:

// Load the http module to create an http server.
var http = require('http');

// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hi Welcome To Faradars Mag n");
});

// Listen on port 7000, IP defaults to 127.0.0.1
server.listen(7000);

// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:7000/");

// To run the server, open your terminal and run the command: node server.js

قطعه کد بالا باید در فایلی به نام server.js

 ذخیره و با دستور زیر اجرا شود:

node server.js

در صورتی که اجرا موفقیت‌آمیز باشد، خروجی دستور به صورت زیر خواهد بود.

آموزش ساخت وب سرور با نود جی اس

حال با بازکردن آدرس داده شده موجود در عکس بالا در مرورگر، خروجی به صورت زیر خواهد بود.

آموزش ساخت وب سرور با نود جی اس

رسیدگی به درخواست های GET در Node.js

ایجاد درخواست «GET» در Node.js برای بازیابی داده‌ها از سایتی دیگر،‌ نسبتاً ساده است که در این بخش از آموزش Node JS به آن پرداخته خواهد شد.

آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js  و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js و MongoDB در تم آف

کلیک کنید

برای این کار ابتدا باید ماژول Request

را نصب کرد. این کار را می‌توان با اجرای دستور زیر در خط فرمان انجام داد:

npm install request

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

برای ارسال درخواست‌های GET به وب‌سایت‌های دیگر و بازیابی اطلاعات آن‌ها استفاده کرد که در زیر مثالی برای آن آورده شده است: فرض کنید قطعه کد مثال مربوط به ماژول  Request

به صورت زیر باشد:

var request = require("request");
	request("http://www.google.com",function(error,response,body)
	{
		console.log(body);
	});

قطعه کد بالا نوعی درخواست GET به «www.google.com» ارسال می‌کند. ماژول Request

را می‌توان برای ارسال درخواست‌های GET به وب‌سایت‌ها استفاده کرد. هنگامی که پاسخی دریافت می‌شود، پارامترها ( Error

، Response

و Body

) مقادیر متفاوتی خواهند داشت.

آموزش نود جی اس، انگولار و مونگو دی بی – پیاده سازی احراز هویت کاربر با Angular، Node.js و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – پیاده سازی احراز هویت کاربر با Angular، Node.js و MongoDB در تم آف

کلیک کنید

Error

 شامل هر خطایی است که هنگام درخواست رخ داده است، در پاسخ هدرهای HTTP در پاسخ ارسال می‌شود و Body

 شامل کل محتوای Response

 خواهد بود. با نوشتن محتوای دریافتی در پارامتر Body

در فایل console.log

 ، کاربر می‌تواند هر محتوایی که از وب‌سایت دریافت کرده است را مشاهده کند. با اجرای دستور زیر می‌توان قطعه کد بالا را اجرا کرد:

node req.js

خروجی این دستور چیزی شبیه به تصویر زیر است:

آموزش nodejs رایگان

آموزش Express JS

Express.js نوعی فریمورک کاربردی قدرتمند و کارآمد Node.js به حساب می‌آید که ایجاد صفحات وب و برنامه‌های پویا با حداقل کدنویسی را برای توسعه‌دهندگان فراهم می‌کند. «اکسپرس جی اس» مجموعه گسترده‌ای از ویژگی‌ها و ابزارها را فراهم خواهد کرد که به توسعه‌دهندگان اجازه می‌دهد تا به‌سرعت و به راحتی برنامه‌های وب تک‌صفحه‌ای، چندصفحه‌ای و ترکیبی بسازند.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

Express.js بخشی از پشته «MEAN» است. حروف عبارت MEAN برگرفته شده از حرف اول عبارت‌های Angular.js ،Express.js ،MongoDB و Node.js است. MongoDB نوعی پایگاه داده NoSQL محسوب می‌شود، Express.js چارچوب برنامه کاربردی وب، Angular.js چارچوب جاوا اسکریپت «MVC» و Node.js چارچوبی است که برای توسعه برنامه‌های کاربردی در سمت سرور و شبکه مقیاس‌پذیر استفاده می‌شود.

همچنین Express.js رسیدگی به انواع درخواست‌ها مانند «GET» ،«PUT» ،«POST» و «DELETE» را آسان می‌کند. از طرف دیگر، اکسپرس جی اس مجموعه‌ای قوی از ویژگی‌ها را برای ساخت برنامه‌های کاربردی وب کارآمد فراهم خواهد کرد و در کنار آن با ارائه محیط توسعه ساده و شهودی، فرآیند توسعه را ساده می‌کند.

مطلب پیشنهادی:

پیاده سازی احراز هویت در Node.js با Express و JWT — از صفر تا صد

شروع مطالعه

 

آموزش نصب Express

برای استفاده از Express، باید از Node Package Manager برای دانلود و نصب ماژول‌های مورد نیاز استفاده شود. این را می‌توان با اجرای دستور NPM install express

 در خط فرمان یا ترمینال ویندوز به صورت زیر انجام داد.

آموزش نصب Express

پس از نصب، می‌توان برنامه Express ایجاد کرد که ما در این آموزش Node JS ، مثالی فرضی را در نظر گرفته‌ایم. برای این هدف، باید ماژول سروری ایجاد شود که به شماره پورت 3000

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

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello, welcome to this Node.js tutorial from Faradars');
});
var server=app.listen(3000,function() {});

حال با دستور زیر می‌توان برنامه را اجرا کرد.

node expresstet

خروجی دستور بالا در مرورگر به صورت تصویر زیر خواهد بود:

آموزش نصب Express

کد فوق از ماژول Express برای ایجاد سروری استفاده می‌کند که به درخواست‌های پورت 3000

با پیام مدنظر ما پاسخ می‌دهد. کد بالا این کار را با گنجاندن ماژول Express با استفاده از تابع require

 ، ایجاد برنامه Express با تابع express()‎

 ، ایجاد یک کنترل کننده مسیر برای URL ریشه با استفاده از تابع app.get()‎

 و راه‌اندازی سرور با ‎ listen()

 انجام می‌دهد.

Routes چیست؟

«مسیرها» (Routes) تعیین می‌کنند که چگونه برنامه کاربردی به درخواست مشتری به یک نقطه پایانی خاص پاسخ می‌دهد. «سینتکس» (Syntax) آن به صورت زیر است:

app.METHOD(PATH, HANDLER)

شرح سینتکس فوق در ادامه آمده است.

  • app

     نمونه‌ای از ماژول اکسپرس است.

  • METHOD

     نوعی متد درخواست HTTP «GET، POST، PUT یا DELETE» به حساب می‌آید.

  • PATH

     مسیر در سرور است.

  • HANDLER

     نوعی عملکرد یا تابع محسوب می‌شود که اگر مسیر مطابقت داشته باشد، اجرا خواهد شد.

در ادامه مثالی از نحوه پیاده‌سازی مسیرها در اکسپرس ارائه شده است:

  • مسیر Node که رشته Faradars Node.js Tutorial

     را نمایش خواهد داد.

  • شاخه Angular که رشته Faradars Angular Tutorial

     را نمایش می‌دهد.

  • مسیر پیش‌فرض که رشته Welcome to Faradars Mag

     را به نمایش درخواهد آورد.

قطعه کد مثال فوق به صورت زیر است:


var express = require('express');
var app = express();

// Add route for '/'
app.get('/', function(req, res) {
    res.send('Welcome to Faradars Mag');
});

// Add route for '/Node'
app.get('/Node', function(req, res) {
    res.send('Faradars Node.js Tutorial');
});

// Add route for '/Angular'
app.get('/Angular', function(req, res) {
    res.send('Faradars Angular Tutorial');
});

// Start server
app.listen(3000, function() {
    console.log('Server is listening on port 3000');
});

اجرای کدهای بالا با دستور زیر صورت می‌گیرد.

node server.js

برنامه فوق در فایلی به نام server.js

 ذخیره شده که خروجی آن به شرح موارد زیر است:

١- خروجی مسیر پیش‌فرض در پورت 3000

 به صورت زیر خواهد بود:

دوره آموزش نود جی اس

خروجی مسیر /Node

 به صورت زیر خواهد بود:

آموزش های رایگان نود جی اس

خروجی مسیر /Angular

 به صورت زیر خواهد بود:

آموزش کاربردی نود جی اس

ساخت وب سرور با اکسپرس

«Node.js Express» می‌تواند برای ایجاد وب سرور با مسیریابی سریع و آسان استفاده شود. برای این کار به «Jade» نیاز است که آن را می‌توان از طریق Node Package Manager با دستور زیر نصب و برای قالب‌بندی استفاده کرد.

npm install jade

در زیر، قطعه کد وب سروری ساده آورده شده که با اکسپرس ساخته شده است:

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Faradars',message:'Welcome To Faradars Mag'})
});
var server=app.listen(3000,function() {});

اولین قدم در راه‌اندازی برنامه، مشخص کردن موتور نمایشی است که برای رندر کردن قالب‌ها استفاده می‌شود. در مثال فوق از «Jade» به عنوان موتور نمایش استفاده شده است. سپس از تابع render

 برای رندر قالب به نام index.jade

 استفاده شده و مقادیر رشته‌ای Faradars

 و Welcome To Faradars Mag

 به ترتیب به پارامترهای title

 و message

 منتقل شده‌اند. هنگامی که دستور به درستی اجرا شود، خروجی در مرورگر نشان داده می‌شود و به ترتیب مقادیر Faradars

و Welcome To Faradars Mag

را در عنوان و پیام درج می‌کند.

قطعه کد بالا در فایلی به نام webserver.js

 ذخیره شده است و با دستور زیر در ترمینال ویندوز اجرا خواهد شد:

node webserver.js

حال خروجی به صورت تصویر زیر خواهد بود:

ساخت وب سرور با اکسپرس

آموزش Node JS و MongoDB

Node JS نوعی فریم ورک کاربردی وب محبوب است که می‌تواند برای کار با پایگاه داده‌های رابطه‌ای و غیر رابطه‌ای استفاده شود. در این بخش از آموزش Node JS نحوه استفاده از Node.js و MongoDB را برای ایجاد نوعی اپلیکیشن خرید تحت وب خواهیم آموخت. همچنین یاد خواهیم گرفت که چگونه یک برنامه Node Express با MongoDB برای ذخیره و ارائه محتوا بسازیم.

آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js  و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js و MongoDB در تم آف

کلیک کنید

پایگاه های داده NoSQL و نود جی اس

Node.js قادر است با هر دو پایگاه داده «MySQL» و «MongoDB» کار کند. برای استفاده از هر یک از این پایگاه‌های داده، ماژول‌های مربوطه «MySQL» و «Mongoose» باید با استفاده از NPM نصب شوند. با این ماژول‌ها، Node.js می‌تواند اتصال به پایگاه داده را ایجاد و کوئری‌ها را اجرا و داده‌ها را دست‌کاری کند.

آموزش نود جی اس، انگولار و مونگو دی بی – پیاده سازی احراز هویت کاربر با Angular، Node.js و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – پیاده سازی احراز هویت کاربر با Angular، Node.js و MongoDB در تم آف

کلیک کنید

نحوه استفاده نود جی اس از MongoDB چگونه است؟

در قالب مثالی عملی نحوه کار MongoDB با نود جی اس در این بخش بررسی خواهد شد. فرض بر این است که پایگاه داده‌ای به نام EmployeeDB

 و مجموعه‌ای به به نام Employee

 موجود باشد.

Documents
{
	{Employeeid : 1, Employee Name : Guru99},
	{Employeeid : 2, Employee Name : Joe},
	{Employeeid : 3, Employee Name : Martin},
}

١- نصب ماژول‌های NPM: ابتدا باید با دستور زیر MongoDB را نصب کرد:

npm install mongodb

٢- ایجاد و بستن اتصال به پایگاه داده: حال نوبت به ایجاد و بستن اتصال به پایگاه داده MongoDB خواهد رسید که با قطعه کد زیر این کار انجام می‌شود.

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {
        console.log(Connected);
               db.close();
    });

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

آموزش node js و MongoDB

٣- پرس و جو برای داده‌ها در پایگاه داده MongoDB: با استفاده از درایور MongoDB، می‌توان پایگاه داده EmployeeDB

 را برای اطلاعات موجود در مجموعه Employee

 جستجو کرد. این مجموعه شامل تمام اسناد مربوط به کارمندان است که هر کدام دارای شناسه شی، نام کارمند و شناسه کارمند هستند. برای واکشی تمام اسناد موجود در مجموعه کارمند، می‌توان از درایور MongoDB برای اجرای پرس‌وجو استفاده کرد. قطعه کد انجام این کار به صورت زیر خواهد بود:

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    var cursor = db.collection('Employee').find();

    cursor.each(function(err, doc) {

        console.log(doc);

    });
});

در کد بالا، متُد MongoClient.connect

 برای اتصال به پایگاه داده MongoDB استفاده می‌شود. همچنین نوعی cursor

 در کدهای بالا ایجاد می‌شود که به رکوردهای مجموعه Employee

 اشاره می‌کند. سپس از cursor

برای تکرار در رکوردهای مختلف در پایگاه داده استفاده خواهد شد و تابعی اجرا می‌شود که محتویات هر سند را در کنسول چاپ می‌کند. همچنین می‌توان با تعیین شرایط جستجو در تابع find()‎

 رکوردی خاص را از پایگاه داده دریافت کرد.

آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js  و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js و MongoDB در تم آف

کلیک کنید

۴- درج اسناد در مجموعه: کتابخانه MongoDB متد insertOne

 را برای درج اسناد در مجموعه فراهم می‌کند. مثال زیر نحوه استفاده از متد insertOne

را برای درج سند در مجموعه Employee

نشان می‌دهد. جزئیات سند در کد مشخص شده است. برای بررسی اینکه داده‌ها با موفقیت درج شده‌اند، می‌توان دستورات Use EmployeeDB

 و db.Employee.find({Employeeid :4 })

 را در MongoDB اجرا کرد.

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    });
}); 

۵- به‌روز‌رسانی اسناد در مجموعه: اسناد را می‌توان را در مجموعه با استفاده از متد updateOne

 ارائه شده توسط کتابخانه MongoDB به‌روز کرد. قطعه کد زیر نحوه به‌روزرسانی یک سند در مجموعه mongoDB

 را نشان می‌دهد.

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').updateOne({
        "EmployeeName": "NewEmployee"
    }, {
        $set: {
            "EmployeeName": "Mohan"
        }
    });
}); 

۶- حذف اسناد در مجموعه: اسناد را می‌توان در مجموعه با استفاده از متد deleteOne

 ارائه شده به وسیله کتابخانه MongoDB حذف کرد. قطعه کد زیر نحوه حذف سند در مجموعه mongoDB

را نشان می‌دهد.

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

آموزش وعده ها در Node JS

«وعده‌ها» (Promises) پیشرفتی برای «توابع پاسخ به تماس» (Callback Functions) در Node.js هستند. آن‌ها به کاهش مشکلات مرتبط با تودرتو کردن چندین تابع پاسخ به تماس در طول چرخه عمر توسعه کمک می‌کنند.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

سینتکس اولیه وعده با فراخوانی « doSomethingAync

 » یا تابع ناهم‌زمان و عبارت « then

 » تعریف می‌شود که مقدار « onFulfilled

 » را برای عملیات موفق و مقدار « onRejected

 » را برای خطا مشخص می‌کند.

var promise = doSomethingAync()
promise.then(onFulfilled, onRejected)

پاسخ به وعده ها

در این بخش از آموزش Node JS، مثالی از کاربرد وعده‌ها در نود جی اس بررسی خواهد شد. برای این هدف ابتدا باید با دستور زیر ماژول وعده‌ها را نصب کرد:

npm install promise

حال نوبت به ایجاد کدی است که از وعده‌ها در نود جی اس استفاده کند که کد زیر مربوط به این هدف است.

var Promise = require('promise');
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url)
    .then(function(err, db) {
        db.collection('Employee').updateOne({
            "EmployeeName": "Martin"
        }, {
            $set: {
                "EmployeeName": "Mohan"
            }
        });
    }); 

در قطعه کد بالا، متُد MongoClient.connect

 برای ایجاد اتصال به پایگاه داده MongoDB استفاده می‌شود و سپس از تابع then

 برای اجرای قطعه کد استفاده خواهد شد که EmployeeName

 کارمند را با نام Martin

 به Martin

 به‌روز می‌کند.

 وعده ها در نود جی اس

وعده های تودرتو در نود جی اس

برخورد با وعده‌های تودرتو در نود جی اس از مباحث بسیار مهمی است که در این بخش از آموزش Node JS در قالب مثالی ساده به آن پرداخته خواهد شد. قطعه کد مثال مربوط به این بخش به صورت زیر است:

var Promise = require('promise');
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url)

.then(function(db) {
    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    })

    .then(function(db1) {
        db1.collection('Employee').insertOne({
            Employeeid: 5,
            EmployeeName: "NewEmployee1"
        })
    })
});

در کد فوق از ۲ عبارت then

برای درج رکوردها در پایگاه داده MongoDB استفاده شده است. در بند اول، از پارامتر db

 برای دسترسی به مجموعه و از متد insertOne

 برای درج سند در مجموعه Employee

 استفاده شده است. عبارت then

در مثال بالا برای درج رکورد دوم استفاده می‌شود. در نهایت و پس از اجرای کدها، ۲ رکورد به پایگاه داده MongoDB اضافه خواهند شد.

مطلب پیشنهادی:

ساخت وب اپلیکیشن RESTful با استفاده از Express ،Node.js و MongoDB – از صفر تا صد

شروع مطالعه

 

ساخت وعده سفارشی در نود جی اس

برای ایجاد وعده سفارشی، کتابخانه «q» باید نصب و استفاده شود که این کار با دستور زیر در ترمینال قابل انجام است:

npm install q

اگر نصب موفقیت آمیز باشد به صورت زیر خواهد بود:

آموزش کتابخانه q در نود جی اس

در ادامه مثالی برای ساخت وعده سفارشی آورده شده است:

var Q = require('q');

function Add() {
  var a, b, c;
  a = 5;
  b = 6;
  c = a + b;
  return Q.resolve(c);
}

var Display_promise = Q.denodeify(Add);

Display_promise()
  .then(function(result) {
    console.log('Addition function completed: ' + result);
  });

در کد بالا، کتابخانه q

 با استفاده از کلمه کلیدی require

 وارد شده است. همچنین تابعی به نام Add

 ایجاد شده که دو عدد را که در متغیرهای a

 و b

 ذخیره کرده و آن‌ها را با هم جمع می‌کند و مجموع این مقادیر را در متغیر c

 ذخیره خواهد کرد.

در مثال فوق همچنین از کتابخانه q

استفاده شده تا تابع Add

را حذف کرده و آن را به تابعی تبدیل کند که وعده را برمی‌گرداند. همچنین تابع Add

فراخوانی شده و مقدار وعده بازگشتی دریافت شده است. در آخر هم از کلمه کلیدی then

 استفاده شده تا مشخص شود که اگر عملکرد با موفقیت اجرا شود، « Addition function completed

 » در console.log

 نمایش داده شود.

Bluebird JS چیست؟

«Bluebird JS» نوعی کتابخانه نود جی اس مبتنی بر وعده است که توسعه‌دهندگان را قادر می‌سازد تا با وعده دادن به ماژول‌های Node به صورت ناهم‌زمان از آن‌ها استفاده کنند. می‌توان از آن برای اجرای ناهم‌زمان MongoDB استفاده و فرآیند نوشتن برنامه‌های Node.js را ساده‌تر کرد. نمونه‌ای از استفاده از آن، برقراری ارتباط با EmployeeDB

 در مثال بالا، برای گرفتن تمام رکوردها از مجموعه Employee و نمایش آن‌ها در کنسول است.

آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی
فیلم آموزش پروژه محور نود جی اس Node.js – ساخت چت روم ویدئویی در تم آف

کلیک کنید

ساخت وعده با کتابخانه Bluebird JS

برای ساخت وعده با کتابخانه Bluebird JS چند قدم مورد نیاز است که اولین قدم آن نصب کتابخانه Bluebird JS خواهد بود که با دستور زیر قابل انجام است:

npm install bluebird

ساخت وعده با این کتابخانه در قالب مثالی کاربردی بررسی خواهد شد که قطعه کد مثال مورد نظر ما به صورت زیر است:

var Promise = require('bluebird');

var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;

var url = 'mongodb://localhost/EmployeeDB';
mongoClient.connectAsync('mongodb://localhost/EmployeeDB')

.then(function(db) {
        return db.collection('Employee').findAsync({})

    })
    .then(function(cursor) {
        cursor.each(function(err, doc) {
            console.log(doc);
        })
    });

مرحله بعدی این خواهد بود که ماژول bluebird

 به کدها اضافه و از آن برای وعده دادن به ماژول MongoDB استفاده شود که در کدهای بالا این عمل قابل مشاهده است. وعده دادن به کتابخانه یعنی این که هر متدی که در آن وجود دارد نوعی وعده را برمی‌گرداند که این کار می‌تواند به وسیله bluebird

 مدیریت شود.

همچنین دستور require

 برای گنجاندن کتابخانه Bluebird و متد promisifyAll()‎

 برای ایجاد نسخه‌ای غیر همگام از هر متد در ماژول MongoDB استفاده می‌شود و برای هر فراخوانی متد وعده‌ای را برمی‌گرداند.

مرحله آخر اتصال به پایگاه داده، بازیابی تمام رکوردهای مجموعه و نمایش آن‌ها در کنسول است که خروجی آن به صورت تصویر زیر خواهد بود:

آموزش node.js تم آف

مولد در نود جی اس چیست؟

«ژنراتورها» (مولدها | Generators) عملکردهای خاصی هستند که می‌توانند در هر نقطه‌ای متوقف و از سر گرفته شوند. آن‌ها در نود جی اس برای «اجرا با تأخیر» (Lazy Load) استفاده می‌شوند، به این معنی که مقادیر فقط در صورت نیاز از ژنراتور گرفته می‌شوند. ژنراتورها دو متد اصلی زیر را دارند:

آموزش ساخت میکروسرویس با نود جی اس Nodejs و ری اکت React
فیلم آموزش ساخت میکروسرویس با نود جی اس Nodejs و ری اکت React در تم آف

کلیک کنید

  1.  «Next»
  2.  «Yield»

متد Yield

 در تابعی برای توقف اجرا در خطی خاص فراخوانی می‌شود و متد Next

 از برنامه اصلی برای از سرگیری اجرای تابعی فراخوانی خواهد شد که دارای متد Yield

است. اجرای برنامه تا متد Yield

بعدی یا فراخوانی آخرین متد ادامه خواهد داشت.

مطلب پیشنهادی:

Node.js و ابزارها و تکنیک‌ها برای ساخت سرورهای قدرتمند و سریع

شروع مطالعه

 

مثالی از ژنراتور در نود جی اس

در زیر مثالی از ژنراتور برای درک بهتر آورده شده است:

function* Add(x) {
   yield x + 1;
   var y = yield(null);
   y = 6
   return x + y;
}

var gen = Add(5);

gen.next();

gen.next();

در تابع مولد Add()

 قطعه کد بالا از کلمه کلیدی Yield

برای توقف عملکرد استفاده شده است. هنگامی که تابع با مقدار 5 فراخوانی می‌شود، این مقدار به پارامتر x نسبت داده خواهد شد. سپس تابع next()

 فراخوانی می‌شود که اجرای تابع Add()

را از سر می‌گیرد. بعد از آن عبارت اجرای تابع را مجدداً متوقف می‌کند و تابع next()

دوباره فراخوانی می‌شود. این کار اجرا را از سر می‌گیرد و مقدار x=5

 و y=6

 باهم جمع شده و نتیجه برگردانده می‌شود.

ژنراتور در نود جی اس

پاسخ به تماس در مقابل ژنراتورها

از ژنراتورها برای حل مشکل «جهنم کال‌بک» (callback hell) استفاده می‌شود، یعنی زمانی که توابع Callback در طول توسعه یک برنامه Node.js بیش از حد تودرتو می‌شوند. ژنراتورها می‌توانند در ایجاد توابع تایمر مفید باشند که در ادامه مثالی برای درک بهتر آن آورده شده است. مثال زیر این تابع را با تأخیرهای ۱۰۰۰، ۲ هزار و ۳ هزار میلی‌ثانیه فراخوانی می‌کند. گام نخست تعریف تابع تماس با اعمال تاخیر زمانی لازم است و قطعه کد آن در ادامه ملاحظه می‌شود.

function Timedelay(ptime, callback) {

setTimeout(function() {
  
    callback("Pausing for " + ptime);
    
  }, time);
}

در قطعه کد بالا، تابعی به نام Timedelay

 ایجاد شده است که دو پارامتر دارد: ptime

 برای زمان تأخیر برحسب میلی‌ثانیه و callback

 برای تابعی که باید پس از تأخیر اجرا شود. همچنین پیامی در داخل تابع برای نشان دادن زمان تأخیر ایجاد شده و از تابع setTimeout

 برای به تأخیر انداختن اجرای فراخوان استفاده شده است. پس از سپری شدن تأخیر، callback

با پیام داخل خودش به عنوان پارامتر آن اجرا می‌شود. تابع Timedelay

اساساً تأخیر را معرفی کرده و پس از پایان تأخیر، تابع callback

را اجرا می‌کند.

در مرحله ٢، نوبت به استفاده از callbacks

 می‌رسد. کد زیر نشان می‌دهد که چگونه می‌توان تماس‌های برگشتی را برای تأخیرهای 1000

 ، 2000

 و 3000

 میلی‌ثانیه پیاده‌سازی کرد. برای این هدف از تابع setTimeout

 برای به تأخیر انداختن اجرای هر تابع callback

بر اساس زمان تأخیر مشخص شده، استفاده شده است. با اضافه کردن توابع callback

، می‌توان مطمئن شد که هر تابع فقط پس از سپری شدن تأخیر اجرا می‌شود، که این شرایط می‌تواند برای «برنامه نویسی ناهمگام» (Asynchronous Programming) در جاوا اسکریپت مفید باشد.

Timedelay(1000, function(message) {
  
  console.log(msg);
  Timedelay(2000, function(message) {
    
    console.log(msg);
    Timedelay(3000, function(message) {
      
      console.log(msg);
  })
  })
}

کدهای فوق اجرای تابع‌های callbacks

 را بر اساس بازه‌های زمانی مختلف نشان می‌دهد. تابع Timedelay

 چندین بار با مقادیر تأخیر مختلف با استفاده از callbacks

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

function* Messages() {
  console,log(yield(Timedelay(1000, function(){})));
  console,log(yield(Timedelay(2000, function(){})));
  console,log(yield(Timedelay(3000, function(){})));
}

کد فوق نحوه پیاده‌سازی تابع Timedelay

 را با استفاده از ژنراتورها نشان می‌دهد. در کدهای بالا نوعی تابع مولد به نام Messages

 تعریف شده و برای فراخوانی تابع Timedelay

استفاده می‌شود. تابع Yield

 برای فراخوانی Timedelay

با زمان‌های تأخیر متفاوت استفاده می‌شود که درک کدها را در مقایسه با رویکرد برگشتی ساده‌تر می‌کند. به طور کلی، کدهای فوق نشان می‌دهد که چگونه ژنراتورها می‌توانند برنامه نویسی ناهم‌زمان را در Node.js ساده کنند.

مطلب پیشنهادی:

نصب سرویس Node.js روی وب سرور | راهنمای جامع

شروع مطالعه

 

آموزش جریان فایل در Node.js

در Node.js، جریان یا استریم داده‌ها به طور گسترده‌ای برای انتقال داده یا اطلاعات استفاده می‌شوند. به عنوان مثال، هنگام استفاده از تابع console.log

 برای خروجی داده‌ها به کنسول، نوعی جریان استفاده می‌شود.

آموزش فریم ورک نود جی اس – آپلود فایل با Node.js
فیلم آموزش فریم ورک نود جی اس – آپلود فایل با Node.js در تم آف

کلیک کنید

علاوه بر این، Node.js اجازه می‌دهد تا داده‌ها از فایل‌ها استریم شوند، که این امر خواندن و نوشتن آن‌ها را آسان‌تر می‌کند. به منظور نشان دادن نحوه استفاده از استریم در نود جی اس برای خواندن و نوشتن از فایل‌ها در این آموزش Node JS مثالی در ادامه مورد بررسی قرار گرفته است.

مثالی از جریان فایل در نود جی اس

برای ارائه مثالی کاربردی لازم است که در ابتدا فایلی به نام data.txt

 یا هر نام دلخواه دیگری را در حافظه محلی کامپیوتر ذخیره کنیم. فایل متنی فرضی ما برای این کار حاوی دو جمله متنی زیر است:

جریان فایل در Node.js

حال نوبت به نوشتن کدهای استریم برای خواندن فایل است، که قطعه کد آن به صورت زیر خواهد بود:

var fs = require("fs");
var stream;
stream = fs.createReadStream("D://node-stream/data.txt");

stream.on("data", function(data) {
    var chunk = data.toString();
    console.log(chunk);
});

در کدهای بالا، ماژول fs

 برای ایجاد جریان استفاده شده است. همچنین از متد createReadStream

 برای ایجاد استریم قابل‌خواندن استفاده و مسیر فایل data.txt

به آن داده شده است. در کد فوق تابع stream.on

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

همچنین تابع callback

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

node index.js

خروجی دستور بالا به صورت تصویر زیر است:

آموزش استریم در نود جی اس

نوشتن در فایل

این بخش از آموزش Node JS مربوط به قابلیت نوشتن در فایل است که این عمل روی مثال فرضی بالا قرار است انجام شود. قطعه کد لازم برای انجام این کار به منظور نوشتن در فایل به صورت زیر است.

var fs = require("fs");
var stream;
stream = fs.createWriteStream("D://data.txt");

stream.write("مجله تم آف")
stream.write("آموزش نو د جی اس")
stream.write("آموزش جاوا اسکریپت")
stream.write("آموزش برنامه نویسی")
stream.write("آموزش رایگان برنامه نویسی ")
stream.write("آموزش فریمورک های جاوا اسکریپت ") 

کد بالا نشان می‌دهد که استریم قابل نوشتن را می‌توان با متد fs.createWriteStream

 ایجاد کرد و مکان فایل داده مدنظر را به عنوان ورودی ارائه کرد. سپس می‌توان از متد stream.write

 برای نوشتن داده در فایل استفاده کرد که در فایل داده ذخیره می‌شود. با باز کردن فایل data

 ، داده‌هایی که روی آن نوشته شده است، نمایش داده می‌شود. خروجی قطعه کد بالا به صورت زیر خواهد بود:

آموزش نود جی اس تم آف

Pipe در نود جی اس

استفاده از «لوله» (Pipe) در برنامه Node راهی عالی برای انتقال مؤثر داده‌ها از یک فایل به فایل دیگر است. برای انجام این کار، می‌توانی از متد pipe()‎

 استفاده کرد که دو آرگومان می‌گیرد: جریانی قابل نوشتن که به عنوان مقصد داده عمل می‌کند و شی اختیاری. برای درک بهتر استفاده از Pipe در ادامه این بخش از آموزش Node JS، مثالی فرضی ارائه شده است.

آموزش ماژول اف اس در نود جی اس – کار با فایل توسط ماژول fs در Node.js
فیلم آموزش ماژول اف اس در نود جی اس – کار با فایل توسط ماژول fs در Node.js در تم آف

کلیک کنید

در گام اول فرض بر این است که فایلی متنی به نام datainput.txt

 در «دارایو D» کامپیوتر ما ذخیره شده که حاوی داده‌های زیر است:

آموزش Pipe در Node JS

حال در این مرحله فایلی خالی به نام dataOutput.txt

 ایجاد و در همان درایو D ذخیره خواهد شد.

آموزش پیپ در Node JS

حال با قطعه کد زیر انتقال داده از فایل datainput.txt

 به فایل dataOutput.txt

 انجام خواهد شد.

var fs = require("fs");
var readStream = fs.createReadStream("D://datainput.txt");
var writeStream = fs.createWriteStream("D://dataOutput.txt");
readStream.pipe(writeStream);

کد بالا انجام انتقال داده‌ها از فایلی به فایل دیگر را با استفاده از Readstream

 و Writstream

 انجام می‌دهد. Readstream

برای فایلی که حاوی داده‌هایی است که باید منتقل شوند و Writstream

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

به Writstream

استفاده می‌شود. که با اجرای دستور زیر این کار انجام خواهد شد.

node index.js

خروجی دستور بالا به صورت زیر خواهد بود:

نود جی اس چیست و چه کاربردی دارد آموزش Node JS

آموزش رویدادها در Node JS

Node.js نوعی چارچوب رویداد محور است که حول مفهوم رویدادها می‌چرخد. رویدادها در جاوا اسکریپت و نود جی اس اَعمال یا اتفاق‌هایی هستند که در سیستم رخ می‌دهند، مانند کلیک کردن کاربر روی دکمه‌ای در صفحه وب یا برقراری ارتباط با پایگاه داده و بسیاری از موارد دیگر را هم می‌توان نام برد. برنامه‌ نویسی مبتنی بر رویداد برای ایجاد توابعی استفاده می‌شود که هنگام وقوع رویدادهای خاص فعال می‌شوند. برای درک بهتر رویدادها، طبق روال عادی این آموزش Node JS با مثالی عملی به دنبال این مفهوم خواهیم رفت.

آموزش مقدماتی نود جی اس Node.js
فیلم آموزش مقدماتی نود جی اس Node.js در تم آف

کلیک کنید

با استفاده از ماژول events

 می‌توان رویدادها را در Node.js ایجاد کرد. برای نشان دادن این موضوع در مثال زیر رویدادی به نام   data received

ایجاد شده است. هنگامی که این رویداد فعال شود، متن data received

 به کنسول ارسال می‌شود.

var events = require('events');
var eventEmitter = new events.EventEmitter();
eventEmitter.on('data_received', function() {
    console.log('data received succesfully.');
});

eventEmitter.emit('data_received'); 

برای این هدف ابتدا به ماژول events

 و شیئی به نام eventEmitter

 نیاز است. سپس، رویداد data received

را باید به یک تابع فراخوانی متصل کرد که پیغام data received

را به کنسول ثبت می‌کند. در نهایت، به صورت دستی رویداد data received

با تابع eventEmitter.emit

 فعال خواهد شد. خروجی مثال فوق در ترمینال به صورت زیر خواهد بود.

یادگیری و آموزش Node JS نود جی اس

انتشار رویدادها در نود جی اس

هنگام تعریف رویدادها در نود جی اس، رویکردهای مختلفی وجود دارند که می‌توان اتخاذ کرد و ۳ تا از مهم‌ترین این رویکردها در ادامه آمده است.

  1. «کنترل کننده رویداد یکباره» (One time event handlers): از Once()‎

     می‌توان برای واکنش به رویداد فقط در اولین بار استفاده کرد.

  2. «بازرسی شنوندگان رویداد» (Inspecting Event Listeners): از EventEmitter.listenerCount()

     می‌توان برای تعیین تعداد شنوندگان پیوست شده به رویدادی خاص استفاده کرد.

  3. «رویداد newListener»: رویداد newListener

     هر بار که رویداد کنترل کننده جدید ثبت می‌شود، منتشر خواهد شد و برای شناسایی کنترل‌کننده‌های رویداد جدید مورد استفاده قرار می‌گیرد.

JasmineJS چیست؟

«Jasmine» نوعی کتابخانه جاوا اسکریپت منبع آزاد (اوپن سورس) و محبوب است که برای آزمایش انواع برنامه جاوا اسکریپت استفاده می‌شود. این کتابخانه از «توسعه رفتار محور» (Behavior Driven Development | BDD) پیروی می‌کند تا اطمینان حاصل شود که هر خطِ کد جاوا اسکریپت به درستی روی آن «تست واحد» (Unit Test) انجام شده باشد.

آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js  و MongoDB
فیلم آموزش نود جی اس، انگولار و مونگو دی بی – طراحی سایت خبری با Angular ،Node.js و MongoDB در تم آف

کلیک کنید

این ابزار به تست واحد خودکار که معمولاً هنگام توسعه و استقرار برنامه‌های کاربردی وبِ مُدرن استفاده می‌شود، کمک زیادی خواهد کرد. در این بخش از آموزش Node JS مروری بر Jasmine برای آزمایش برنامه‌های ساخته شده با Node.js خواهیم داشت.

Jasmine برای تست برنامه های Node.js

Jasmine نوعی فریمورک تست جاوا اسکریپت محسوب می‌شود که برای صفحات وب، پروژه‌های Node.js و سایر برنامه‌هایی بسیار مناسب است که از جاوا اسکریپت استفاده می‌کنند. برای شروع استفاده از آن، باید ماژول‌های لازم را دانلود و نصب و در کنار آن محیط را با آن مقداردهی اولیه کرد. در نهایت می‌توان فایل پیکربندی Jasmine را بازبینی کرد و از آن بهره برد. مراحل استفاده از Jasmine برای استفاده از آن در آزمایش برنامه‌های نود جی اس به صورت زیر است.

١- نصب ماژول Jasmine: قدم اول نصب ماژول‌های NPM است که با دستور زیر امکان‌پذیر خواهد بود.

npm install jasmine-node
JasmineJS چیست آموزش Node JS

٢- راه‌اندازی محیط Jasmine: برای شروع کار با Jasmine، دستور مقداردهی اولیه محیط باید اجرا شود. این دستور یک دایرکتوری مشخصات و نوعی فایل پیکربندی «جیسون» (JSON) ایجاد می‌کند. در محیط Jasmine دایرکتوری spec

 برای ذخیره تمام فایل‌های آزمایشی استفاده می‌شود، در حالی که فایل JSON اطلاعات پیکربندی را ذخیره می‌کند. دستور مقداردهی اولیه به صورت زیر است:

npx jasmine init
یا
jasmine init

٣- بازبینی و بررسی فایل پیکربندی: فایل پیکربندی Jasmine معمولاً در پوشه spec/support

 با نام jasmine.json

 ذخیره می‌شود. این فایل تمام فایل‌های منبع و فایل‌های مشخصاتی را فهرست می‌کند که باید در Jasmine runner

 گنجانده شوند. تصویر زیر نمونه‌ای از ظاهر فایل jasmine.json

را نشان می‌دهد:

Jasmine برای تست برنامه های Node.js

آزمایش برنامه نود جی اس با Jasmine

در این بخش از آموزش Node JS برای درک فرآیند آزمایش برنامه Nodejs با Jasmine مثالی عملی ارائه خواهد شد. در مثال فرضیِ پیش‌رو، ماژولی تعریف شده است که ۲ عدد را باهم جمع می‌کند که باید نتیجه درستیِ حاصل از آن آزمایش شود. سپس کدی جداگانه برای تست آن تعریف شده است و در نهایت از jasmine برای تست تابع جمع کننده دو عدد استفاده خواهد شد.

١-  نوشتن قطعه کد برنامه: قطعه کد برنامه به صورت زیر است.

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};

در قطعه کد بالا کلمه کلیدی EXPORT

 به کاربر امکان می‌دهد تا عملکرد تعریف شده در فایل را برای فایل‌های دیگر در دسترس قرار دهد. همچنین تابعی به نام AddNumber

 تعریف شده است که دو پارامتر a

 و b

 را می‌گیرد و مجموع آن‌ها را برمی‌گرداند. سپس این تابع به ماژول EXPORT

اضافه می‌شود تا آن را عمومی و در دسترس سایر ماژول‌های برنامه قرار دهد.

٢- نوشتن قطعه کد آزمایش برنامه: قطعه کد آزمایش برنامه با Jasmine به صورت زیر است.

var app=require("C:UsersOrasDesktopFaradars-jasmineAdd.js");
describe("Addition",function(){
it("The function should add 2 numbers",function() {
var value=app.AddNumber(5,6);
expect(value).toBe(11);
});
});

در قطعه کد بالا ماژول آزمایشی برای تابع AddNumber

 در فایل App.js

 با دادن نام و توضیحات تست با استفاده از متدهای describe()‎

 و it()‎

 آغاز می‌شود. سپس متد AddNumber

با دو پارامتر 5

 و 6

 فراخوانی شده و مقدار بازگشتی در متغیری به نام value

 ذخیره خواهد شد. در نهایت، مقایسه یا آزمایش با استفاده از متد expect()‎

 انجام می‌شود تا اطمینان حاصل شود که مقدار بازگشتی برابر با مقدار مورد انتظار 11

 است. با دستور زیر می‌توان آزمایش برنامه را شروع کرد:

jasmine App.js

خروجی دستور بالا به صورت تصویر زیر خواهد بود که این نشان می‌دهد که آزمایش با موفقیت انجام شده است:

مفاهیم پیشرفته آموزش Node JS

سخن پایانی

نود جی اس یکی از اصلی‌ترین فناوری‌های توسعه وب در سمت سرور به حساب می‌آید که امروزه از آن استفاده می‌کنند. توسعه وب در سمت سرور با این فناوری نسبت به قبل بسیار پیشرفت کرده و آسان‌تر شده است. در این مطلب از «مجله تم آف» سعی بر این بود که آموزش Node JS به صورت پروژه محور و با بیانی ساده ارائه شود.

مجموعه آموزش جاوا اسکریپت (JavaScript)
فیلم مجموعه آموزش جاوا اسکریپت (JavaScript) در تم آف

کلیک کنید

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.