Javascript NodeJS-多个对象跨多个文件拆分,但位于同一命名空间中

Javascript NodeJS-多个对象跨多个文件拆分,但位于同一命名空间中,javascript,node.js,Javascript,Node.js,我正在NodeJS中编写一个多人棋盘游戏服务器,我有几个不同的对象,如游戏、用户、棋盘等。目前,所有这些对象都驻留在一个由NodeJS执行的“sever.js”文件中 随着我的项目的发展,这个文件变得越来越拥挤,也越来越难以导航 我想要的是将这些对象分割成多个js文件,但不必到处使用require函数 我希望继续创建这样的对象- game = new Game(); 而不是这个- game = new (require('game')).Game() -- 编辑: 正确的nodej做事方式是

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

随着我的项目的发展,这个文件变得越来越拥挤,也越来越难以导航

我想要的是将这些对象分割成多个js文件,但不必到处使用require函数

我希望继续创建这样的对象-

game = new Game();
而不是这个-

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

编辑:


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

嗯,你可以做一些小事情

首先,当您在另一个文件(需要)中定义类时,您可以直接定义
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文件,但我真的认为这不值得。

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

var Game = require('game').Game;
// Do a bunch of stuff
var game = new Game();
然而,我个人不会。我不能确切地说为什么我不喜欢这个主意,但我不喜欢。

你可以使用global。 在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();

你是否满足于到处使用require来完成一个简单的任务,比如实例化一个对象?我想用“正确的方式”做事,但我不确定什么是正确的方式。我明白你的意思,但实际上我从来没有遇到过这个问题,因为我只是把所有的东西都保存在一个文件中。虽然我在Node中写了一些东西,但它们毫无例外都是相当小的项目,只需在编辑器中为一些代码添加书签就足够了,但是我可以看到,如果你处理大量的代码,这可能会变得单调乏味/不可能。这确实有点像。把它们放在顶端是否是最佳实践?NODEJ推荐的做事方式是什么?+1。这(要求在顶部)是节点应用程序和库中的常见做法。这是我最喜欢的方法。它类似于包含C++头文件,但是如果使用类似名称的模块,它将污染您的全局范围。