[英]Pass route parameter to controller in ExpressJS
I'm using passport JS to authenticate my user account. 我正在使用护照JS来验证我的用户帐户。 Passing the passport variable from app.js to routes.js and controller.js.
从app.js将password变量传递给routes.js和controller.js。 When I pass between routes.js and controller.js, I have no idea how to implement.
当我在route.js和controller.js之间传递时,我不知道如何实现。 I tried different approaches but didn't work.
我尝试了不同的方法,但是没有用。 My first priority was stored all the implementation codes inside controller instead of routes.
我的首要任务是将所有实现代码存储在控制器内部,而不是路由。
App.js App.js
var userRouter = require('./api/routes/userRoutes.js')(app,passport);
Routes.js Routes.js
module.exports = function(app,passport){
var UserRouter = express.Router();
users = require('./../controllers/UserController')
UserRouter.post('/users', users.authenticate);
}
Controller.js Controller.js
exports.authenticate = function(req, res, next){
// How do I get passport variable here?
}
Not sure that it is the best way in this case, but like an option you can try this: 不确定在这种情况下这是最好的方法,但是像一个选项一样,您可以尝试以下操作:
In App.js: 在App.js中:
global. passport = passport;
var userRouter = require('./api/routes/userRoutes.js')(app, passport);
In Controller.js: 在Controller.js中:
exports.authenticate = function(req, res, next) {
console.log(global.passport);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.