【问题标题】:Weird node.js "object is not a function" error奇怪的node.js“对象不是函数”错误
【发布时间】:2014-01-05 07:23:25
【问题描述】:

在我的 serverPlayer.js 中有:

var player = function(startX, startY) {
var x = startX,
    y = startY,
    facingRight = true,
    id;

return {
    x: x,
    y: y,
    id: id,
    facingRight: facingRight
    }
};

module.exports = player;

在我的游戏服务器中我有:

var util = require('util'),
    player = require("./serverPlayer");

........

var newPlayer = new player(data.x, data.y); // that's where the error targets

当我启动服务器时,一切正常。但是,当我在 10 秒后刷新浏览器时,服务器崩溃并给我一个“对象不是函数”错误。

谁能解释这是怎么发生的?非常感谢!

如果你有兴趣,可以在github找到整个项目

【问题讨论】:

  • 您不应将 id 返回为“未定义”。初始化它
  • 感谢您的快速回复。我已经解决了这个问题,但它没有解决我的问题。
  • 请看答案

标签: node.js typeerror


【解决方案1】:

gameServer.js 中的这看起来像问题:

for (i = 0; i < players.length; i++) {
    player = players[i];

我在任何地方都没有看到var player,也没有在此代码所在的函数上看到player 参数。所以它会分配给顶层player变量并覆盖你初始化它的值。

【讨论】:

  • 我的错。非常感谢。
  • 发现自己遇到过几次这样的问题,最好明智地命名所需的模块以避免冲突,例如playerModule会是一个更好的选择。
猜你喜欢
  • 2018-10-04
  • 2014-01-31
  • 2011-05-21
  • 2011-07-20
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多