2017-03-15 71 views
0

我有一個問題,我想在這裏獲得幫助在stackoverflow。node.js需要全局文件

在我的Node.js的項目中,我有我想要做以下

僞代碼

var variable = require(folder/file).name; (of exported module) 
var variable2 = reuire(folder2/file2).name; (of exported module) 
variable2.init(); 

在我的初始化函數我試圖用我的VAR(一init.js文件,該文件在這個虛擬案例中)稱爲變量。我的catch返回錯誤,稱var變量沒有找到。我發現,如果我使用global.variable = require ....那麼這些東西就會起作用。我雖然懷疑這是在node.js中工作的好方法

爲什麼我想這樣做?因爲在我的變量2函數中,我需要其他需要我的變量1函數的東西(並且我的init.js在這些層中處於超級頂層)。

任何提示或幫助如何解決這個問題或結構的東西更好?

+3

不顯示僞代碼。向我們展示真實的代碼,以便我們瞭解您的問題和錯誤。如果你也可以顯示錯誤輸出。 – Jackowski

+0

Jackowski 這是因爲僞代碼 我的意思是在我init.js作爲簡單的文件我需要的所有東西,但我不能夠訪問我的任何功能(層次低了下去,即使他們似乎是在一個全球範圍) – user1724347

回答

2

您應該在需要它的模塊內部需要模塊。在你的情況下,行var variable = require(folder/file);應該在folder2/file2之內,而不是你的init.js文件。

+0

如果我需要它很多級別下來,我應該在每個給定的文件,然後呢? – user1724347

+0

我之所以把它放在init.js中是爲了能夠在許多其他文件中使用它,似乎使它像global.variable = require ...一樣是全局的唯一可行的工作 – user1724347

+1

您應該使用'require'在你需要它的每個文件中。遠離會導致更令人頭痛的全球範圍 – FSeidl