Erro EventEmitter do Node.js

Eu tenho um erro ao tentar herdar o EvenEmitter

/* Consumer.js */ var EventEmitter = require('events').EventEmitter; var util = require('util'); var Consumer = function() {}; Consumer.prototype = { // ... functions ... findById: function(id) { this.emit('done', this); } }; util.inherits(Consumer, EventEmitter); module.exports = Consumer; /* index.js */ var consumer = new Consumer(); consumer.on('done', function(result) { console.log(result); }).findById("50ac3d1281abba5454000001"); /* ERROR CODE */ {"code":"InternalError","message":"Object [object Object] has no method 'findById'"} 

Eu tentei quase tudo e ainda não trabalho

Um par de coisas. Você está sobrescrevendo o protótipo em vez de estendê-lo. Além disso, mova a chamada util.inherits () antes de adicionar o novo método:

 var EventEmitter = require('events').EventEmitter; var util = require('util'); var Consumer = function Consumer() {} util.inherits(Consumer, EventEmitter); Consumer.prototype.findById = function(id) { this.emit('done', this); console.log('found'); }; var c = new Consumer(); c.on('done', function(result) { console.log(result); }); c.findById("50ac3d1281abba5454000001"); 
Intereting Posts