我在helpers文件夹中有两个文件,一个是EventHelper.js
和UserEvent.js
,
助手/ EventHelper.js
function EventHelper() {
this.onEventCreated = function(err, e) {...}
this.isExisting = function(id) {...}
}
module.exports = new EventHelper();
助手/ UserEvent.js
var EventHelper1 = require('./EventHelper')
var EventHelper2 = require('./EventHelper.js')
function UserEvent() {
this.fireEvent = function(req, res) {
var EventHelper3 = require('./EventHelper');
...
EventHelper1.onEventCreated(err, e);
EventHelper2.onEventCreated(err, e);
EventHepler3.onEventCreated(err, e);
}
};
module.exports = new UserEvent();
控制器/ EventController.js
var EventHelper = require('../helpers/EventHelper')
var UserEvent = require('../helpers/UserEvent');
var EventController = {
fireEvent: function(req, res) {
if(EventHelper.isExisting(req.params.id)) UserEvent.fireEvent(req, res)
...
}
}
EventHelper1
中的{p EventHelper2
和UserEvent.js
始终为空({}
},其中EventHelper3
正在初始化且能够引用对象&#39 ; s方法正确。我已将此EventHelper.js
全局引用到不同的控制器文件夹(EventController.js
)中,并且它已正确填充。我不确定我是否遗漏了一些东西
答案 0 :(得分:0)
你错过了一些分号:
function EventHelper() {
this.onEventCreated = function(err, e) {...}
this.isExisting = function(id) {...}
}**;**
module.exports = new EventHelper();
例如在添加这个之后,我在你的控制器中获得了EventHelper,这是我以前没有得过的。
此外(我认为这只是错误而不是你的实际代码,因为那时你无法获得它的实例),它是:
EventHelper3.onEventCreated(err,e);
而不是`
EventHepler3.onEventCreated(err,e);
总而言之,以下内容现在适用于我:
// EventHelper.js
function EventHelper() {
this.onEventCreated = function(err, e) {
console.log('testCreate');
};
this.isExisting = function(id) {
console.log('testExists' + id);
return true;
};
};
module.exports = new EventHelper();
// UserEvent.js
var EventHelper1 = require('./EventHelper.js');
var EventHelper2 = require('./EventHelper.js');
function UserEvent() {
this.fireEvent = function(req, res) {
console.log(req + res);
var EventHelper3 = require('./EventHelper');
EventHelper1.onEventCreated(req, res);
EventHelper2.onEventCreated(req, res);
EventHelper3.onEventCreated(req, res);
};
};
module.exports = new UserEvent();
// EventController.js
var EventHelper = require('../helpers/EventHelper.js');
var UserEvent = require('../helpers/UserEvent.js');
var EventController = {
fireEvent: function(req, res) {
if(EventHelper.isExisting(1)) UserEvent.fireEvent(req, res);
};
}
EventController.fireEvent("1","2");
通过以下输出:
testExists1
12
testCreate
testCreate
testCreate
我希望我能帮到你!