1

尽管我已经导入了包含我将使用的函数的 JS 文件,但 Node.JS 说它是未定义的。

require('./game_core.js');

Users/dasdasd/Developer/optionalassignment/games.js:28
    thegame.gamecore = new game_core( thegame );
                       ^
ReferenceError: game_core is not defined

你知道有什么问题吗?Game_core 包含以下功能:

var game_core = function(game_instance){....};
4

3 回答 3

4

添加到 game_core.js 的末尾:

module.exports = {  
    game_core : game_core  
}  

到games.js:

var game_core = require('./game_core').game_core(game_istance);
于 2012-08-10T19:39:54.410 回答
2

要求 Node 中的模块不会将其内容添加到全局范围。每个模块都包装在自己的范围内,因此您必须导出公共名称

// game_core.js
module.exports = function (game_instance){...};

然后在主脚本中保留对导出对象的引用:

var game_core = require('./game_core.js');
...
thegame.gamecore = new game_core( thegame );

您可以在文档中阅读有关它的更多信息:http ://nodejs.org/api/modules.html#modules_modules

于 2012-08-10T19:40:27.760 回答
0

另一种方法:

if( 'undefined' != typeof global ) {
    module.exports = global.game_core = game_core;
}
于 2012-08-10T19:43:55.730 回答