NodeJS – 多个对象分散在多个文件中,但在相同的名称空间

我正在用NodeJS编写一个多人棋盘游戏服务器,我有几个不同的对象,比如Game,User,Board等等。目前,所有这些对象都驻留在一个由NodeJS执行的“sever.js”文件中。

随着我的项目的增长,这个单一文件变得越来越拥挤,很难导航。

我想要的是将这些对象分割成多个js文件,但不必在整个地方使用require函数。

我希望继续创build这样的对象 –

game = new Game(); 

而不是这个 –

 game = new (require('game')).Game() 

编辑:

什么是正确的NodeJS做事的方式?

那么,你可以做一些小的事情。

首先,当你在另一个文件中定义你的类(需要)时,你直接定义module.exports ,即

 module.exports = function Game() {...}; 

然后,而不是:

 game = new (require('game')).Game() 

你可以做:

 game = new (require('game')); 

或者,我更喜欢的是定义顶部的所有要求:

 var Game = require('game'), User = require('user'); // Use them: new Game(); new User(); 

你可以创build一些花式的加载器直接遍历并自动需要所有的JS文件,但我真的不认为这是值得的。

你可以使用全局。 在Game.js中:

 global.Game = function(){}; 

在User.js中:

 global.User = function(){}; 

在main.js中:

 require('Game.js'); require('User.js'); var game = new Game(); var user = new User(); 

你可以在开始时加载它们:

 var Game = require('game').Game; // Do a bunch of stuff var game = new Game(); 

不过,我个人不会。 不能确切地说我为什么不喜欢这个想法,但我不这样做。