2013-07-27 61 views
2

在全局需要模塊是不是一個好主意,如果有的話,是否有一種方法可以跨多個項目文件要求模塊,而不必在每個文件中明確要求模塊?有全球需要節點模塊的好方法嗎?

我假設對第一個答案是「是」,對第二個答案是「否」但想要確認。

這就是爲什麼我要問:

我的工作我使用幾乎在每一個文件,其中有幾個模塊(如貓鼬)節點項目。我想避免在每個文件中明確要求這些。我提出的唯一解決方案是要求全局模塊(即在我的app.js文件中這樣做:mongoose = require('mongoose');而不是var mongoose = require('Mongoose');),但我認爲這是不好的做法,因爲聲明全局變量是壞的。

+0

你知道這些模塊被緩存嗎?或者是你的風格? – Dan455

+1

是的,我聽說過。風格是關注的問題。試圖保持乾燥。 –

+0

[require()在大型多文件節點項目中可能的重複](http://stackoverflow.com/questions/10612051/require-in-large-multi-file-node-projects) –

回答

0

是的,globals是壞的,整個編程社區已經接受避免全局變量作爲一個良好的做法。如果你這樣做,每個看過你的代碼的人都會馬上做一個大型的facepalm。

但是,您可以通過省略var關鍵字來創建全局變量,如示例所示。

不要重複自己是關於代碼,而不是關於依賴聲明。

+0

謝謝,這就是我正在假設。我其實只是將其標記爲重複。不過,我認爲重複必須在多個文件中需要相同的include語句。如果你可以包含或需要從另一個文件中的文字代碼塊,或者直接將文件內容直接插入到另一個文件中,似乎會很方便,但我認爲Node的創建者可能有很好的理由不允許這樣做。 –

+0

請注意,這不僅僅是節點。它也是Python和許多其他語言。如果這種事情吸引你,你可能會考慮Ruby。 –