node.js - 在 module.exports 函数中创建事件

标签 node.js

我正在尝试制作一个带有偶数的模块,我可以从索引文件中调用它(在需要之后)。 我的代码包括 var events = require("events"); 并且我在这里只写了棘手的部分。

index.js:

var reqw = require('./module.js');
reqw.on('data', function(d) {
    console.log(d);
});

模块.js:

module.exports = {
    listaccts: function() {
        events.EventEmitter.call(this);
    }
}
util.inherits(exports.listaccts, events.EventEmitter);
exports.listaccts.prototype.listme = function() {
    thisList = this;
    var req = https.request(requestOptions, function(res) {
        res.on('data', function(chuck) {
            store = chuck;
        });
        res.on('end', function(d) {
            thisList.emit("data", store.toString());
        });
    });
}

搜索了整个我们,但尚未找到正确的答案..

最佳答案

稍微修改你的代码:

module.js

function listaccts(){

}
util.inherits(listaccts, EventEmitter);
listaccts.prototype.listMe = function(){
    var self = this;
    var store = [];
    console.log('here');
    var req = https.request(requestOptions, function(res) {
        res.on('data', function(chuck) {
            console.log('data');
            store.push(chuck);
        });
        res.on('end', function() {
            console.log('end');
            self.emit("data", store);
        });
    });
    req.end();
};

module.exports = listaccts;

index.js

var reqw = require('./module');
var obj = new reqw();
obj.listMe();
obj.on('data', function(err, data) {
    console.log(err);
});

req.end 很重要,我忘记包含并得到一个永无休止的循环。

已创建用于绑定(bind)this的实例,因此不需要EventEmitter.call。 也许您希望将 listMe 函数添加到您的构造函数中。

希望这有帮助。

关于node.js - 在 module.exports 函数中创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526315/

相关文章:

mysql - 防止 Sails JS 水线创建用于关联的列

javascript - 将代理添加到处理程序 - Hapi

node.js - 使用 knexjs 迁移(postgres)改变自动增量

node.js - Express.js 和 Mongoose : access Object attribute name by the request parameter

node.js - Nodejs mp3 流式传输

javascript - 如何使用 Babel 在 JavaScript 类中编写正确的私有(private)方法?

javascript - 当我向我的应用程序(javascript 和 nodejs)中的端点发出请求时,在 postman 中指定原始 header 没有任何作用

node.js - Nodejs如何原始html

node.js - 如何从 firebase 函数访问 firebase 托管文件

node.js - React + Material-UI - 警告 : Prop className did not match