ویژگی تصویر

رویداد ها در NodeJS

  /  Node.js   /  رویداد ها در Node.js
بنر تبلیغاتی الف
NodeJS - Node.js

در این بخش به بررسی رویداد ها در Node.js می پردازیم، Node.js به عنوان یک محیط اجرایی قدرتمند برای جاوااسکریپت، قابلیت‌های بسیاری برای توسعه برنامه‌های سمت سرور ارائه می‌دهد. یکی از ویژگی‌های مهم و برجسته در Node.js، مدل رویدادمحور (Event-driven) آن است که به توسعه‌دهندگان امکان مدیریت کارهای غیرهمزمان را با بهره‌وری بالا فراهم می‌کند. این مدل با استفاده از Event Loop، امکان اجرای کدها را به صورت کارآمد و بدون نیاز به بلوکه شدن پردازش فراهم می‌آورد. به بیان ساده‌تر، مدل رویدادمحور به شما اجازه می‌دهد که به رویدادها گوش دهید و بر اساس آن‌ها واکنش نشان دهید.

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

رویدادها و EventEmitter

در Node.js، یک ماژول داخلی به نام events وجود دارد که هسته اصلی کار با رویدادها است. این ماژول کلاسی به نام EventEmitter را فراهم می‌کند که ابزار اصلی برای مدیریت رویدادها در Node.js محسوب می‌شود. با استفاده از این کلاس می‌توانید رویدادها را تعریف کنید، به آن‌ها گوش دهید و در مواقع مورد نیاز آن‌ها را اجرا (emit) کنید.

ایجاد رویداد با EventEmitter

ابتدا ماژول events را با استفاده از دستور require وارد کرده و یک نمونه از کلاس EventEmitter ایجاد می‌کنیم:

تماشا در حالت تمام صفحه
توضیح کد بالا:
  1. وارد کردن ماژول events: با استفاده از require ماژول events را وارد کردیم.
  2. ایجاد نمونه: یک نمونه از کلاس EventEmitter ساختیم.
  3. تعریف رویداد: با استفاده از متد on، رویدادی به نام greet تعریف شد که هنگام وقوع، پیام تبریک را نمایش می‌دهد.
  4. انتشار رویداد: با متد emit، رویداد greet اجرا شده و پارامتر name به آن ارسال می‌شود.

مدیریت چندین رویداد

کلاس EventEmitter این امکان را فراهم می‌کند که به چندین رویداد گوش دهید یا حتی چندین listener برای یک رویداد تعریف کنید.

مثال:
تماشا در حالت تمام صفحه
توضیح:

در این مثال، دو listener مختلف برای رویداد calculate تعریف شده است. هر listener عملکرد خاص خود (محاسبه جمع و حاصل‌ضرب) را دارد.

حذف Listenerها

گاهی اوقات ممکن است نیاز داشته باشید که Listenerهای یک رویداد را حذف کنید. برای این کار از متد removeListener یا removeAllListeners استفاده می‌شود.

مثال:
تماشا در حالت تمام صفحه

موارد استفاده عملی

رویدادها در Node.js در بسیاری از بخش‌ها کاربرد دارند. به عنوان مثال:

  1. مدیریت فایل‌ها: گوش دادن به اتمام خواندن یا نوشتن فایل‌ها.
  2. مدیریت شبکه: گوش دادن به درخواست‌های ورودی در سرور HTTP.
  3. مدیریت جریان‌های داده (Streams): مدیریت ورودی و خروجی داده‌ها.
مثال: گوش دادن به رویداد در سرور HTTP
تماشا در حالت تمام صفحه

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

منابع

  1. Node.js Documentation
  2. MDN Web Docs
  3. GeeksforGeeks

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج