Node.js非常适合事件驱动的应用程序。
Node.js中的事件
计算机上的每个操作都是一个事件。就像建立连接或打开文件一样。
Node.js中的对象可以触发事件,比如readStream对象在打开和关闭文件时触发事件:
例
var fs = require('fs');
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
console.log('The file is open');
});
活动模块
Node.js有一个内置模块,称为“事件”,您可以在其中创建,触发和监听自己的事件。
要包含内置事件模块,请使用该require() 方法。此外,所有事件属性和方法都是EventEmitter对象的实例。为了能够访问这些属性和方法,请创建一个EventEmitter对象:
var events = require('events');
var eventEmitter = new events.EventEmitter();
EventEmitter对象
您可以使用EventEmitter对象将事件处理程序分配给您自己的事件。
在下面的示例中,我们创建了一个函数,该函数将在触发“scream”事件时执行。
要触发事件,请使用该emit()方法。
例
var events = require('events');
var eventEmitter = new events.EventEmitter();
//Create an event handler:
var myEventHandler = function () {
console.log('I hear a scream!');
}
//Assign the event handler to an event:
eventEmitter.on('scream', myEventHandler);
//Fire the 'scream' event:
eventEmitter.emit('scream');