我在一个Cannot call method 'checkId' of undefined
模块中遇到node.js
,但在调用时遇到另一个模块:
res = EntityCommons.prototype.checkId(res,json[RE_FIELD_ID]);
我在同一目录中有3个node.js
模块Host
,Request
和EntityCommons
。 Host
和Request
需要EntityCommons
如下:
Request
:
var EntityCommons = require("./EntityCommons.js");
console.log("XXEntityCommons null or undefined : " +
_.isNullOrUndefined(EntityCommons));
console.log("XXEntityCommons prototype null/und: " +
_.isNullOrUndefined(EntityCommons.prototype));
Host
:
var EntityCommons = require("./EntityCommons.js");
console.log("EntityCommons null or undefined : " +
_.isNullOrUndefined(EntityCommons));
console.log("EntityCommons prototype null/und: " +
_.isNullOrUndefined(EntityCommons.prototype));
当我检查输出时,我得到:
EntityCommons null or undefined : false
EntityCommons prototype null/und: true
XXEntityCommons null or undefined : false
XXEntityCommons prototype null/und: false
在Host
中,EntityCommons
的原型为null
。这根本不符合逻辑。什么可能导致这个问题?
更新
EntityCommons
也需要Host
,如下所示:
var Host = require("./Host.js");
这是一个循环问题吗?
答案 0 :(得分:0)
我使用可用的推荐here解决了循环问题。
换句话说,我首先在我的模块顶部导出一个函数:
function EntityCommons() { }
module.exports = EntityCommons;
它也适用于对象:
var EntityCommons = {};
module.exports = EntityCommons;