1
Node.js中的文件模塊是否意識到全局變量?如果沒有,我怎麼能得到一個變量我想加載一個文件模塊?例如,現在我有一個運行3臺服務器的腳本。一個用於遊戲大廳,一個用於插座路由器,另一個用於管理。我想將服務器分解成單獨的文件模塊。問題是,套接字路由器需要訪問遊戲大廳,遊戲大廳和管理模塊需要訪問套接字路由器。這可能嗎?文件模塊知道全局變量?
Node.js中的文件模塊是否意識到全局變量?如果沒有,我怎麼能得到一個變量我想加載一個文件模塊?例如,現在我有一個運行3臺服務器的腳本。一個用於遊戲大廳,一個用於插座路由器,另一個用於管理。我想將服務器分解成單獨的文件模塊。問題是,套接字路由器需要訪問遊戲大廳,遊戲大廳和管理模塊需要訪問套接字路由器。這可能嗎?文件模塊知道全局變量?
不是真的 - 文件/模塊中定義的變量是本地模塊。
您可以創建一個出口所需的服務器變量的通用模塊,並且需要在每個服務器模塊,但更好的方法是使用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);
是的,這就是我不得不做的。 – LordZardeck 2012-02-08 20:13:10