2012-02-08 119 views
1

Node.js中的文件模塊是否意識到全局變量?如果沒有,我怎麼能得到一個變量我想加載一個文件模塊?例如,現在我有一個運行3臺服務器的腳本。一個用於遊戲大廳,一個用於插座路由器,另一個用於管理。我想將服務器分解成單獨的文件模塊。問題是,套接字路由器需要訪問遊戲大廳,遊戲大廳和管理模塊需要訪問套接字路由器。這可能嗎?文件模塊知道全局變量?

回答

2

不是真的 - 文件/模塊中定義的變量是本地模塊。

您可以創建一個出口所需的服務器變量的通用模塊,並且需要在每個服務器模塊,但更好的方法是使用Dependency Injection ...

每個服務器都需要有接受它的方法(在這種情況下,通過使用所需服務器的參數導出「啓動」函數)。在啓動時,主服務器「引入」對這些其他服務器的引用。

var socketRouter = require('./socketRouter.js'); 
var gameLobby = require('./gameLobby.js'); 
var admin = require('./admin.js'); 
socketRouter.start(gameLobby); 
gameLobby.start(socketRouter); 
admin.start(socketRouter); 
+0

是的,這就是我不得不做的。 – LordZardeck 2012-02-08 20:13:10