2013-10-19 52 views
0

有一種方法可以使Node.JS上的變量和函數全局使用變量上的GLOBAL前綴。在全球範圍內製作「應用程序」上下文是否很好?

var app = express(); 

把它交給:

GLOBAL.app = express(); 

我怕這種做法的約內存泄漏或其他什麼東西,當應用程序變得更大這一方法的含義。

另一種方式來跳過此方法是使用外部所需的功能以外的參數。 I.g:

var myFunction = require('./functions/myFunction.js') (app); 

你可以通過應用程序如果「myFunction的」對外部參數的支持,但這種方法可能會傳遞到每一次的「應用程序」參數和處理它的功能範圍初始化任何內部函數之前。這是一個令人討厭的行爲,儘管它更「面向對象」。

你們可以談論這個東西是什麼?我能否在全球範圍視圖中不斷放置一些重要變量?

回答

1

不,這是不好的做法,使用節點的任何全局變量和有這樣做沒有任何優勢。 app.js可以成爲你的主循環。您可以使用app.use或者使用這兩種模式中的一個通過app

var everyauth = require('./middleware/everyauth.js'); 
var errors = require('./middleware/errors.js'); 
app.use(everyauth.middleware()); 
errors(app); 

如果你想你的測試啓動服務器,在摩卡做這樣的事情:

before(function() { 
    require('../../app.js'); 
}); 

問題不內存泄漏;它是關於最小化代碼中的依賴關係。

相關問題