从快递4开始,你不应该这样做
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport module.exports = function(app, passport) { // ===================================== // FACEBOOK ROUTES ===================== // ===================================== // route for facebook authentication and login app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); // handle the callback after facebook has authenticated the user app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect : '/profile', failureRedirect : '/' })); // route for logging out app.get('/logout', function(req, res) { req.logout(); res.redirect('/'); }); };
相反,你应该使用express.Route()
函数和
var routes = require('./app/routes.js'); app.use('/', routes);
如何将配置的护照传递到Express 4中的路由模块?
的function
出口仍然可以用于传递passport
的模块之间的参考.它只是创建和return
一个Router
而不是修改app
直接.
var express = require('express'); module.exports = function(passport) { var router = express.Router(); router.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); // etc. return router; };
并且,app
然后use
它可以:
var routes = require('./app/routes.js')(passport); app.use('/', routes);