我正在使用Node.js處理一個項目,並且服務器端代碼變得足夠大,我想將它分解爲多個文件。看起來這已經完成了很長時間的客戶端,開發是通過爲每個文件插入一個script
標籤完成的,並且僅用於分發就像用於將所有內容放在一起的「Make」。我意識到將所有的服務器端代碼進行連接是沒有意義的,所以我不會問如何去做。我能找到的最接近的東西是require()
,但它的行爲不像script
在瀏覽器中那樣require'd文件不共享通用名稱空間。如何使用Node.js管理多個JS文件服務器端
看看一些較舊的Node.js項目,如Shooter,看來這曾經不是這種情況,或者我錯過了我的代碼中非常簡單的東西。我的require'd文件不能在編譯時訪問全局調用名稱空間,也不能運行時。有沒有簡單的方法解決這個問題,還是我們不得不讓所有需要的JS文件完全獨立於調用範圍?
感謝您的信息,標記爲正確的。我普遍認同全球化==邪惡的概念,但似乎他們確實有自己的位置。例如,如果我有一個基本屬性,我想爲給定的「類」設置一個依賴於其他值的值。例如: 'SomeClass.prototype.baseProp = SomeOtherClass.prototype.prop * 2;' 在這種情況下,我不得不通過構造函數將它設置爲對象實例化,或者,按照您的建議使用'global'對象。我認爲後者可能是最合適的。 – 2011-04-18 14:18:16
@XHR然後'SomeClass'對SomeClass.js中的SomeOtherClass有依賴關係,並且你需要(SomeOtherClass)''。我的代碼中有一個全局變量。 'global._ = require(「underscore」)'因爲我使用它_every_單個文件。這是'global'唯一的用例。 – Raynos 2011-04-18 15:30:05