在节点

时间:2016-07-30 19:10:40

标签: javascript node.js express

我有以下结构:

- 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未定义

我如何引用app中的应用程序?

我的另一个问题是我打算使用mongoose模型,这些模型现在也在app.js中定义,但会放在model/*js中。我应该在每个文件中明确要求必要的模块,例如model/*.js中的mongoose,然后是middleware/authorization.js中的mongoose和模型文件,或者是否有任何神奇的方法可以在整个应用程序中使用所有变量(不计算全局变量) )?

我的最后一个问题是,如何从app.js及其子目录导入build/所有其他js文件?也许我应该手动执行,每个文件都单独需要?

1 个答案:

答案 0 :(得分:2)

您需要将app注入授权模块。离。

authorization.js

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

app.js

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