我在一个文件夹中有以下两个文件:

外加同一文件夹中一个名为minions_model的文件
但是当我尝试使用以下命令调用murder_model时:
var murder_model = require('./murder_model.js');并调用它来查看它的函数,我得到:
{}而我应该看到类似这样的内容:
{ xxx: [Function: xxx] }更新:似乎是因为minionModel的缘故,missionModel无法获得谋杀文件。
我注意到,如果我从谋杀文件中删除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,
};这很奇怪,因为如果我在其他地方调用它(而不是在minion,谋杀或任务中,例如server.js ),它就能完美地工作。
发布于 2017-07-16 12:40:06
之所以会发生这种情况,是因为您要替换整个module.exports对象,而这两个模块相互需要并导致循环依赖。您可以通过不替换module.exports对象来解决它。
试试这个:
module.exports.getMission = getMission;
module.exports.xxx = xxx;
module.exports.yyy = yyy;https://stackoverflow.com/questions/45125010
复制相似问题