我正在尝试拆分并组织所有路由。我已经成功做到了,但是遇到了一个问题。使用Express 4和路由器时,我在特定路由中传递实例时存在问题。例如,我想将Passport传递给login.js文件。我该怎么做?我这样做正确吗?还是有更好、更清洁的解决方案?
//app.js
var express = require('express');
var passport = require('passport');
var app = express();
require('./routes')(app, passport);
//routes.js
module.exports = function (app, passport) {
app.use('/', require('./routes/index'));
app.use('/', require('./routes/login')(passport));
app.use('/', require('./routes/register')(passport));
};
//login.js
这里的 passport 是未定义的。
var express = require('express');
var router = express.Router();
router.get('/login', function (req, res) {
res.render('login', {
title: 'login',
message: req.flash('loginMessage')
});
});
router.post('/login', passport.authenticate('local-login', {
successRedirect : '/profile',
failureRedirect : '/login',
failureFlash : true
}));
module.exports = router;
loginRoutes
的结尾处,你不需要返回router
吗? - regularmike