【问题标题】:Pass route parameter to controller in ExpressJS将路由参数传递给 ExpressJS 中的控制器
【发布时间】:2017-03-30 17:09:40
【问题描述】:

我正在使用护照 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?
}

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 2017-01-12
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多