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();
不过,我个人不会。 不能确切地说我为什么不喜欢这个想法,但我不这样做。