Node.js的路径无限循环
问题描述:
我有一个文件夹中的以下两个文件:Node.js的路径无限循环
加一个文件在同一文件夹名为minions_model
但是,当我尝试调用murder_model有:
var murder_model = require('./murder_model.js');
,并调用它,看看它的功能,我得到:
{}
,而我应该看到:
{ xxx: [Function: xxx] }
更新: 好像missionModel未能得到,因为minionModel的谋杀文件。
我注意到如果我从谋杀文件中删除minionModel引用,它会工作。 但是minionModel因为Mission_model而崩溃。所以如果我从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,
};
它的怪异,因为如果我把它在其他地方(在未奴才,谋杀或错误sion,例如server.js,它可以很好地工作。
答
发生这种情况是因为您要替换整个module.exports
对象,并且这两个模块互相要求并导致循环依赖。你可以解决它我不能取代module.exports
对象。
试试这个:
module.exports.getMission = getMission;
module.exports.xxx = xxx;
module.exports.yyy = yyy;
它的奇怪,因为如果我在其他地方调用它(不是奴才,谋杀或任务,例如server.js它完美的作品。 – maria