我正在NodeJS中编写一个多人棋盘游戏服务器,我有几个不同的对象,如游戏,用户,棋盘等。目前,所有这些对象都驻留在由NodeJS执行的单个“sever.js”文件中。
随着我的项目的发展,这个单一文件变得越来越拥挤,难以导航。
我想要的是将这些对象拆分成多个js文件,但不必在整个地方使用require函数。
我希望继续创建这样的对象 -
game = new Game();
而不是这个 -
game = new (require('game')).Game()
-
编辑:
NodeJS的正确做法是什么?
答案 0 :(得分:7)
嗯,你可以做一些小事。
首先,当您在另一个文件中定义您的类时(需要),您可以直接定义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();
你可以创建一些花哨的加载器,直接遍历并自动需要所有的JS文件,但我真的不认为这是值得的。
答案 1 :(得分:4)
您可以使用全局。 在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();
答案 2 :(得分:1)
您可以在开头加载它们:
var Game = require('game').Game;
// Do a bunch of stuff
var game = new Game();
然而,我个人不会。不能确切地说我为什么不喜欢这个主意,但我不这样做。