将路由参数传递给ExpressJS中的控制器

时间:2017-03-30 08:37:48

标签: javascript node.js express

我使用护照JS来验证我的用户帐户。将护照变量从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?
}

1 个答案:

答案 0 :(得分:0)

在这种情况下不确定它是最好的方法,但是像一个选项你可以试试这个:

在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);
}