nodejs require不是全局加载对象
nodejs require is not loading object globally
我在助手文件夹中有两个文件,一个是EventHelper.js
和UserEvent.js
,
/事件帮助程序.js
function EventHelper() {
this.onEventCreated = function(err, e) {...}
this.isExisting = function(id) {...}
}
module.exports = new EventHelper();
帮助程序/用户事件.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();
控制器/事件控制器.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)
...
}
}
UserEvent.js
中的EventHelper1
和EventHelper2
总是空的(有{}
),其中EventHelper3
被正确初始化并能够正确引用对象的方法。我已经在全球不同的控制器文件夹(EventController.js
)中引用了这个EventHelper.js
,并且它被正确填充。我不确定我是否在这里错过了什么
您缺少一些分号:
function EventHelper() {
this.onEventCreated = function(err, e) {...}
this.isExisting = function(id) {...}
}**;**
module.exports = new 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
希望能帮到你!
相关文章:
- ThreeJS访问加载的obj模型中的对象
- 如何在JSON中加载对象内部的数组元素
- 在 emberjs 中加载对象的正确方法是什么
- 使用逻辑加载对象
- nodejs require不是全局加载对象
- JavaScript:如何预加载<对象>图像数据?/ JavaScript 的图像与<对象>
- 等待ultil-ajax.html成功加载对象
- 在Phonegap中加载[对象文档]的AJAX成功数据
- 在ThreeJS中未使用JSONLoader加载对象:无法读取属性'可见'的未定义
- 加载对象标记时进行检测
- 在加载对象DOM之前修改对象DOM
- 通过OBJMTLLoader加载对象上的多个材料
- 如何按顺序加载对象数组的图像
- js -材料不加载对象
- 预加载对象+Mtl对象在Three.js
- 如何使用curl.js加载对象
- 使单页网站看起来像无限滚动,并以不同的方式加载对象
- 是否可以使用extendscript从外部illustrator文件加载对象属性
- 相位器框架-保存和加载对象javascript
- 有必要捕获加载对象,组件组件