Здравствуйте, я пытаюсь создать приложение Node.js, подобное этому. Код в моем app.js файла:Обработчик событий Node.js не работает
var _ = require('underscore');
var employee = require('./employeeEmitter');
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
var inherits = require('util').inherits;
var data = [
{id:1, firstName: 'John', lastName: 'Smith'},
{id:2, firstName: 'Jane', lastName: 'Smith'},
{id:3, firstName: 'John', lastName: 'Doe'}
];
inherits(employee.EmployeeEmitter, EventEmitter);
var newEmployeeEmitter = new employee.EmployeeEmitter(data);
newEmployeeEmitter.on('lookupById',function(){newEmployeeEmitter.lookupById(newEmployeeEmitter.data,1)});
employee.EmployeeEmitter.prototype.test= function() {
this.emit('lookupById');
}
console.log(newEmployeeEmitter.test);
В моем employeeEmitter.js файл:
var _ = require('underscore');
var EventEmitter = require('events').EventEmitter;
module.exports = {
EmployeeEmitter: function (args) {
this.data = args;
EventEmitter.call(this);
},
lookupById : function(data,id){
var foundId = _.where(data,{id:id});
return foundId[0];
},
lookupByLastName : function(data,lastName) {
return _.where(data,{lastName: lastName});
},
addEmployee: function (data, firstName, lastName) {
// obtain next id
var newId = function (data) {
var id = _.max(data, function (data) {
return data.id;
});
return id.id + 1;
}
// return new data (old data + new object, but without mutation of initial object)
data.push({id:newId(data), firstName: firstName, lastName: lastName });
return data;
}
}
Я надеюсь, что когда я бег app.js, выход в окне консоли должен быть:
{ID: 2, ПгвЬЫат: 'Джейн', LastName: 'Смит'}
Однако, это показывает [Function]. Я не знаю, что произойдет. Может кто-нибудь мне помочь? Большое вам спасибо!
спасибо. Я перешел на ваш код, который в последней строке использует: newEmployeeEmitter.test(); однако, это дает мне еще одну ошибку: TypeError: newEmployeeEmitter.lookupById не является функцией –