2013-06-18 11 views
12

चलें कहते हैं कि मैं 3 उजागर कार्यों: उपयोगकर्ता, पोस्ट, लेखNodeJS: eventEmitter वस्तु का उपयोग विश्व स्तर पर

जो सभी के लिए एक फ़ाइल बुलाया मध्यस्थ जहां घटनाओं के सभी सेट कर रहे हैं करने के लिए संदेश का उत्सर्जन की जरूरत है।

वर्तमान में मैं कर रहा हूँ मुसीबत तो

कर मध्यस्थ फ़ाइल में मैं बहुत कुछ ऐसा होता है:

var EventEmitter = require('events').EventEmitter; 
    , pubsub = new EventEmitter(); 

exports.pubsub = new EventEmitter() 

pubsub.on('loggedIn', function(msg) { 
    console.log(msg); 
}); 

और उपयोगकर्ता, पोस्ट और लेख कार्यों में। ऐसा कुछ:

var mediator = require('../config/mediator') 
    , _ = require('underscore') 

exports.account = function(req, res) { 
    var returned = _.omit(req.user._doc, 'password') 

    mediator.pubsub.emit('loggedIn', 'A User logged in'); 

    res.send(returned); 
}; 

उत्सर्जन पूरी तरह अनदेखा हो रहा है, कोई त्रुटि या कुछ भी नहीं। यकीन नहीं है कि अगर मैं इसे सही कर रहा हूं तो किसी भी दिशा की सराहना की जाएगी। वांछित वापसी हालांकि उम्मीद के रूप में काम है।

उत्तर

20

आप EventEmitter को दो बार तत्काल कर रहे हैं, इसलिए निर्यात किया गया कोई ऐसा व्यक्ति नहीं है जो ईवेंट की सदस्यता लेता है। यह काम करता है:

var EventEmitter = require('events').EventEmitter 
    , pubsub = new EventEmitter(); 

exports.pubsub = pubsub; 

pubsub.on('loggedIn', function(msg) { 
    console.log(msg); 
}); 
+2

यह सुनिश्चित नहीं है कि मैंने इसे कैसे नहीं देखा। शायद निराशा से :)। धन्यवाद! –

संबंधित मुद्दे