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