Javascript TypeError:utils.getPlayerName不是函数
我一定是把module.exports弄错了。不幸的是,我似乎无法理解。我正在Node.js中开发一个Yugioh游戏(是的,那个老孩子的交易卡游戏),作为一个控制台应用程序(至少现在是这样)。任何帮助都将不胜感激 game.js:Javascript TypeError:utils.getPlayerName不是函数,javascript,node.js,error-handling,Javascript,Node.js,Error Handling,我一定是把module.exports弄错了。不幸的是,我似乎无法理解。我正在Node.js中开发一个Yugioh游戏(是的,那个老孩子的交易卡游戏),作为一个控制台应用程序(至少现在是这样)。任何帮助都将不胜感激 game.js: var utils = require("./utils"); var legend = require("./legend"); var manager = require("./eventManager"); module.exports = { da
var utils = require("./utils");
var legend = require("./legend");
var manager = require("./eventManager");
module.exports = {
data: {
players: {
0: {
name: null,
lifePoints: 4000
},
1: {
name: null,
lifePoints: 4000
}
},
phase: null,
turnOwner: null,
turnCount: 1,
hasEnded: false
},
draw: function(playerId, amount) {
utils.out("Draw " + amount + " -> " + utils.getPlayerName(playerId));
},
cyclePhase: function(phaseId) {
if (phaseId) {
// TODO
}
else {
if (this.data.phase == null) {
this.data.phase = legend.phases.standby;
this.cyclePhase();
}
else {
switch (this.data.phase) {
case legend.phases.standby: {
manager.triggerEvent(legend.phaseEvents.start_standby, this.data.turnOwner);
utils.out("Phase -> Stand-By Phase");
break;
}
case legend.phases.draw: {
manager.triggerEvent(legend.phaseEvents.end_standby, this.data.turnOwner);
manager.triggerEvent(legend.phaseEvents.in_draw, this.data.turnOwner);
utils.out("Phase -> Draw Phase");
break;
}
case legend.phases.main1: {
manager.triggerEvent(legend.phaseEvents.start_main1, this.data.turnOwner);
utils.out("Phase -> Main Phase 1");
break;
}
case legend.phases.battle: {
manager.triggerEvent(legend.phaseEvents.end_main1, this.data.turnOwner);
manager.triggerEvent(legend.phaseEvents.start_battle, this.data.turnOwner);
utils.out("Phase -> Battle Phase");
break;
}
case legend.phases.main2: {
manager.triggerEvent(legend.phaseEvents.end_battle, this.data.turnOwner);
manager.triggerEvent(legend.phaseEvents.start_main2, this.data.turnOwner);
utils.out("Phase -> Main Phase 2");
break;
}
case legend.phases.end: {
manager.triggerEvent(legend.phaseEvents.end_main2, this.data.turnOwner);
manager.triggerEvent(legend.phaseEvents.in_end, this.data.turnOwner);
utils.out("Phase -> End Phase")
break;
}
}
}
}
this.data.turnCount++;
manager.triggerEvent(legend.turnEvents.countUpdate, null, this.data.turnCount);
},
activateCard: function(playerId, cardId, activationType, slotId) {
},
summonMonster: function(cardId, summonType) {
// TODO
},
setCard: function(cardType, slotId, slotPos, handSlotPos) {
switch (cardType) {
case 0: {
}
}
}
};
utils.js:
var game = require("./game");
module.exports = {
out: function(msg) {
console.log(" " + msg);
},
getPlayerName: function(playerId) {
return game.data.players[playerId].name;
},
getRandomInt: function(min, max) {
return min + Math.floor(Math.random() * (max - min + 1));
}
};
堆栈跟踪:
TypeError: utils.getPlayerName is not a function
at Object.module.exports.draw (/home/ubuntu/workspace/game.js:29:53)
at start (/home/ubuntu/workspace/engine.js:16:10)
at Object.<anonymous> (/home/ubuntu/workspace/engine.js:6:1)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
TypeError:utils.getPlayerName不是函数
在Object.module.exports.draw(/home/ubuntu/workspace/game.js:29:53)
开始时(/home/ubuntu/workspace/engine.js:16:10)
反对。(/home/ubuntu/workspace/engine.js:6:1)
在模块处编译(Module.js:409:26)
在Object.Module.\u extensions..js(Module.js:416:10)
在Module.load(Module.js:343:32)
在Function.Module.\u加载(Module.js:300:12)
位于Function.Module.runMain(Module.js:441:10)
启动时(node.js:139:18)
在node.js:974:3
我自己想出来的。我不明白,但我设法改正了错误。我从文件“utils.js”中删除了变量“game”,并将函数“getPlayerName”移到了文件“game.js”中,不知何故解决了这个问题