我在文件夹中有以下两个文件:
在名为minions_model
但是当我尝试用:
打电话给murder_model时var murder_model = require('./murder_model.js');
并调用它来查看其功能,我得到:
{}
虽然我应该看到类似的东西:
{ xxx: [Function: xxx] }
更新: 由于minionModel,似乎missionModel无法获得谋杀文件。
我注意到如果我从Murder文件中删除了minionModel引用,它就可以了。 但由于Mission_model,minionModel崩溃了。所以如果我从MissionModel中删除minionModel它会工作。但它是一个无限循环!。
导致此问题的原因以及如何解决?
来源:
爪牙:
var path = require('path');
var missionsCompålicated = require('./mission_model.js');
var mongoose = require('mongoose');
function yyy() {
console.log("inside minions");
return 499;
}
module.exports = {
yyy : yyy,
};
谋杀:
var path = require('path');
var MinionModel = require('./minions_model.js');
function xxx() {
console.log("inside murder model");
}
module.exports = {
/*botAttack : botAttack,*/
xxx : xxx,
};
任务:
var xau = require('./murder_model.js');
function getMission(userid) {
console.log("??:)");
console.log(xau);
console.log(xau.xxx());
}
module.exports = {
getMission : getMission,
};
它很奇怪,因为如果我把它称之为其他地方(不是在奴才,谋杀或任务中,例如server.js它完美地运作。
答案 0 :(得分:1)
这是因为您要替换整个module.exports
对象,并且这两个模块相互要求并导致循环依赖。您可以解决此问题,而不是替换module.exports
对象。
试试这个:
module.exports.getMission = getMission;
module.exports.xxx = xxx;
module.exports.yyy = yyy;