如何正确访问由node.js应用程序中的express设置的应用程序variables?

我正在构build一个node.js服务器,我的文件夹结构如下所示:

  • server.js
  • 应用程序/ routes.js
  • 应用程序/路由/ users.js

我的问题是,我不知道如何使用users.js文件内的appvariables。 我是否需要并在此文件中再次设置expression式,还是有一个更好/更简单的方法来做到这一点? 这里是我的示例代码(只是最低限度了解我的问题):

server.js

 // Include our packages in our main server file var express = require('express'); var stormpath = require('express-stormpath'); var app = express(); // Init Stormpath for user management and authentication app.use(stormpath.init(app)); // Load routes require('./app/routes')(app); // Start the server app.listen(process.env.PORT); // Stormpath will let you know when it's ready to start authenticating users. app.on('stormpath.ready', function () { console.log('Your server is running on port ' + port + '.'); }); 

应用程序/ routes.js

 // Import dependencies const express = require('express'); const stormpath = require('express-stormpath'); // Export the routes for our app to use module.exports = function(app) { // Create API group routes const apiRoutes = express.Router(); // User management: get users, invite users, view user profile var UsersRoute = require('./routes/users'); apiRoutes.get('/memberinfo', stormpath.loginRequired, UsersRoute.memberInfo); // Set url for API group routes app.use('/', apiRoutes); }; 

应用程序/路由/ users.js

 // Protected route test module.exports.memberInfo = function(req, res){ //how do i access the "app" here? res.status(200).send({ user: req.user }); } 

.memberInfo方法中,您可以使用req.app来访问与该请求关联的app对象。

在你没有传递req对象的情况下,你可以使用这种方式,那么你需要通过调用它的方法来初始化模块,然后将app对象传递给模块,然后模块可以在本地存储app对象,可以在需要时使用它。