Javascript 在节点中的应用程序所需的文件中使用应用程序变量

Javascript 在节点中的应用程序所需的文件中使用应用程序变量,javascript,node.js,express,Javascript,Node.js,Express,我的结构如下: - build/ -- app.js -- middlware/ --- authorization.js -- model --- Model1.js --- Model2.js -- routes --- common.js 这才刚刚开始,将会有更多的文件。我刚刚使用passport及其工作机制创建了一个身份验证机制,但现在我想将它移出app.js文件,移动到middleware/authorization.js,并将我的“登录”路径移动到routes。当我这样做时,我收到

我的结构如下:

- build/
-- app.js
-- middlware/
--- authorization.js
-- model
--- Model1.js
--- Model2.js
-- routes
--- common.js
这才刚刚开始,将会有更多的文件。我刚刚使用passport及其工作机制创建了一个身份验证机制,但现在我想将它移出
app.js
文件,移动到
middleware/authorization.js
,并将我的“登录”路径移动到routes。当我这样做时,我收到了错误

app.use(passport.initialize());
^
ReferenceError:未定义应用程序

我如何在文件中引用应用程序,这在应用程序中是必需的

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


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

您需要将应用程序插入授权模块。前

authorization.js

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

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

您需要将应用程序插入授权模块。前

authorization.js

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

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

如果您可以发布单独的问题,而不是将您的问题合并为一个问题,这是首选。这样,它可以帮助人们回答您的问题,也可以帮助其他人寻找至少一个您的问题。如果您可以发布单独的问题,而不是将您的问题合并为一个问题,则更可取。这样,它可以帮助人们回答你的问题,也可以帮助其他人寻找至少一个你的问题。