2016-07-30 32 views
0

通過應用所需的我有以下結構:使用的應用程序中的var節點

- build/ 
-- app.js 
-- middlware/ 
--- authorization.js 
-- model 
--- Model1.js 
--- Model2.js 
-- routes 
--- common.js 

它纔剛剛開始,還會有更多的文件。我剛剛創建了一個使用護照及其工作方式的身份驗證機制,但現在我想將其移動到app.js文件以外的middleware/authorization.js,並將我的「登錄」路線移至路由。當我這樣做,我收到錯誤

app.use(passport.initialize()); 
^ 

ReferenceError: app is not defined

我怎麼能是指在文件中的應用程序,這是在應用程序需要?

我的另一個問題是,我打算使用現在也在app.js中定義的貓鼬模型,但將放置在model/*js。我是否應該在每個文件中明確地要求必要的模塊,例如model/*.js中的貓鼬,然後在middleware/authorization.js中使用貓鼬和模型文件,或者是否有在整個應用程序中使用所有變量的不可思議的方法(不包括全局變量)?

而我最後的問題是,我怎樣才能將build/及其子目錄中的所有其他js文件導入到app.js?也許我應該手動做到這一點,每個文件單獨需要?

+0

最好是如果你可以發佈獨立的問題,而不是你的問題,合併成一個。這樣,它可以幫助人們回答你的問題,也可以幫助其他人至少狩獵你的一個問題。 – FrankerZ

回答

2

您需要將應用程序注入您的授權模塊。恩。

authorization.js

module.exports = function(app) { 
    app.use(passport.initialize()); 
} 

app.js

var authorization = require('./middleware/authorization')(app);