ما هي الأحداث (Events) في Node.js

 الأحداث (Events) في Node.js
Node.js مثالي للتطبيقات التي تعتمد على الأحداث(Events).
ماهي الأحداث في Node.js
كل إجراء يتم إجراؤه على جهاز الكمبيوتر هو حدث. مثل عند إجراء اتصال أو فتح ملف او الظغط على زر ...الخ .
يمكن للكائنات في Node.js إطلاق أحداث ، مثل الكائن readStream الذي  يرسل أحداثًا  حدث فتح ملف "open" وإغلاقه "close":
مثال
var fs = require('fs');
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
  console.log('The file is open');
});
احفظ الكود في ملف "demo_events_open.js"وشغل موجه الاوامر
C:\Users\My Name>node demo_events_open.js
وحدة الأحداث (Events Module)
يحتوي Node.js على مكتبة نمطية مدمجة تسمى "Events" ، حيث يمكنك إنشاء الأحداث (Events) الخاصة بك وإستدعائها.
لتضمين وحدة الأحداث المضمنة (بالإنجليزية (built-in Events module))، استخدم الدالة require() . بالإضافة إلى ذلك ، فإن جميع خصائص وأساليب الحدث (properties and methods)  هي مثيل لكائن EventEmitter. لتتمكن من الوصول إلى هذه الخصائص والأساليب ، قم بإنشاء كائن EventEmitter:
var events = require('events');
var eventEmitter = new events.EventEmitter();
كائن (object) EventEmitter
يمكنك تعيين معالجات الأحداث للأحداث الخاصة بك باستخدام كائن EventEmitter.
في المثال أدناه قمنا بإنشاء وظيفة سيتم تنفيذها عند إطلاق حدث "scream".
لاستخدام الحدث الخاص بك  ، استخدم الدالة emit ()  .
var events = require('events');
var eventEmitter = new events.EventEmitter();
//قم بإنشاء دالة الحدث:
var myEventHandler = function () {
  console.log('I hear a scream!');
}
//قم بتعيين الحدث الخاص بك  إلى دالة حدث:
eventEmitter.on('scream', myEventHandler);
//الان يمكك تشغييل الحدث 'scream' الخاص بك :
eventEmitter.emit('scream');
احفظ الملف باسم "demo_eventemitter.js" وافتح نافذة موجه الاوامر cmd
C:\Users\My Name>node demo_eventemitter.js