我试图创建一个模块,其中包含我可以从索引文件中调用的模块(在需要之后)。
我的代码包含var events = require("events");
,我在这里只编写了棘手的部分。
var reqw = require('./module.js');
reqw.on('data', function(d) {
console.log(d);
});
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());
});
});
}
搜索了整个我们并找到了正确答案..
答案 0 :(得分:1)
稍微修改了您的代码:
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
很重要,我忘了包含并且有一个永无止境的循环。
创建了绑定this
的实例,因此不需要EventEmitter.call
。
也许你想在你的构造函数中使用listMe
函数。
希望得到这个帮助。