在ExpressJS中将路由parameter passing给控制器

我正在使用护照JS来validation我的用户帐户。 将护照variables从app.js传递给routes.js和controller.js。 当我在routes.js和controller.js之间传递时,我不知道如何实现。 我尝试了不同的方法,但没有奏效。 我的首要任务是将所有的实现代码存储在控制器中而不是路由中。

App.js

var userRouter = require('./api/routes/userRoutes.js')(app,passport); 

Routes.js

 module.exports = function(app,passport){ var UserRouter = express.Router(); users = require('./../controllers/UserController') UserRouter.post('/users', users.authenticate); } 

Controller.js

 exports.authenticate = function(req, res, next){ // How do I get passport variable here? } 

不知道这是否是这种情况下的最佳方式,但是像一个选项,您可以尝试这个:

在App.js中:

 global. passport = passport; var userRouter = require('./api/routes/userRoutes.js')(app, passport); 

在Controller.js中:

 exports.authenticate = function(req, res, next) { console.log(global.passport); }